我有一个包含多个列的数据框df
,我想一次将相同的逻辑应用于多个列。我知道如何一次对一列执行此操作,但有人知道如何一次对多个列应用相同的逻辑吗?
数据框df
col0 col1 col2 col3 col4 col5 col6 new_col
row0 24.0 83 42.0 7 96 0 NaN 192
row1 40.0 4 NaN 12 84 0 NaN 168
row2 83.0 22 80.0 26 15 0 NaN 30
row3 92.0 73 58.0 0 33 0 NaN 66
row4 NaN 63 35.0 70 95 0 NaN 190
我必须对 col4
、col5
、col6
应用一些转换。我可以一一完成,但如何一次对所有列执行此操作?
df['col4'] = df['col4'].apply(lambda n: n*2)
df['col5'] = df['col5'].apply(lambda n: n*2)
df['col6'] = df['col6'].apply(lambda n: n*2)
最佳答案
这取决于逻辑。如果可能的话,可以处理所有列,例如过滤后的 DataFrame 使用:
cols = ['col4','col5','col6']
df[cols] = df[cols] * 2
#short version
df[cols] *= 2
如果需要复杂的功能并且需要按元素处理每个单元格
,请使用 DataFrame.applymap
:
cols = ['col4','col5','col6']
df[cols] = df[cols].applymap(func)
关于python - 如何在 python 3.4.4 中一次将相同的转换逻辑应用于多个列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64027683/