【发布时间】:2021-09-24 05:47:40
【问题描述】:
我在下面有一个数据框:
df = {'a': [1, 2, 3],
'b': [77, 88, 99],
'c1': [1, 1, 1],
'c2': [2, 2, 2],
'c3': [3, 3, 3]}
df = pd.DataFrame(df)
还有一个功能:
def test_function(row):
return row['b']
如何将此函数应用于“c”列(即 c1、c2 和 c3),但仅适用于“a”值与“c”列的第二个字符匹配的特定行?
例如,对于第一行,'a' 的值为 1,所以对于第一行,我想在列 'c1' 上应用这个函数。
对于第二行,'a' 的值为 2,所以对于第二行,我想在列 'c2' 上应用这个函数。其余行以此类推。
期望的最终结果应该是:
df_final = {'a': [1, 2, 3],
'b': [77, 88, 99],
'c1': [77, 1, 1],
'c2': [2, 88, 2],
'c3': [3, 3, 99]}
df_final = pd.DataFrame(df_final)
【问题讨论】:
标签: python pandas dataframe function lambda