将函数应用于以索引和列名为参数的数据帧



考虑一个空的数据帧(df(,其中国家是索引,列是状态。

df = pd.DataFrame({'Country': ['Albania', 'France', 'Mexico', 'Russia'], 
'On': [0, 0, 0, 0],
'Off': [0, 0, 0, 0]}).set_index('Country')

如何将函数应用于数据帧中的每个单元格,并将索引名和列名作为函数的参数?我想将行(x(和列(x(替换为能够使其工作的语法。

df = df.apply(lambda x : function(row(x), column(x)))

谢谢

您可以执行类似的操作

def fct(row):
# You can get index with row.name
print(row.name)

# You can set separately row["On"] and row["Off"]
print(row["On"])
print(row["Off"])
row["On"] = row["On"] + 1
row["Off"] = row["Off"] + 2
return row


dff = df.apply(fct, axis=1)

编辑:如果你确实需要使用依赖于行和列的函数,这个解决方案对你有用吗?

def f2(row, col):
# ...
def fct(row):
# You can get index with row.name
row_name = row.name
for column_name in row.index.values:
row[v] = f2(row_name, column_name)
return row


dff = df.apply(fct, axis=1)

最新更新