考虑一个空的数据帧(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)