【问题标题】:dataframe.apply() while keeping columns namesdataframe.apply() 同时保留列名
【发布时间】:2018-10-24 07:28:30
【问题描述】:

我想对数据框中的每一行应用一个函数。我正在使用 apply() 但它传递了一个 Series 对象,因此不传递列名。有没有办法使用 .apply() 并保留列名?

【问题讨论】:

  • 添加代码和示例
  • 如果您在pd.DataFrame.apply 中使用axis=1,则列名传递。
  • 列名称,因为它是一个系列,如果在轴 = 1 上应用,则作为系列名称,如果在轴 = 1 上应用,则作为系列索引。
  • @ScottBoston,其中一个应该是axis=0 ?
  • 我认为你不需要apply这里

标签: python-3.x pandas dataframe apply data-science


【解决方案1】:

如果你想逐行应用函数:

对于数据框中的每一行,您想要将整行传递给一个函数,并且在函数内您想要使用列名调用值,那么您可以这样做:

# df

    name value
0   AA  1
1   BB  2
2   CC  3

def  function_2(row):
    return row['value'] * 2

df['col_b'] = df.apply(lambda row: function_2(row), axis=1)

输出:

    name value col_b
0   AA  1   2
1   BB  2   4
2   CC  3   6

Example source Link

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-25
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-17
    相关资源
    最近更新 更多