【发布时间】:2021-10-27 22:27:53
【问题描述】:
背景:
我处理一个数据框,并希望将此数据框的两列分开以获得一个新列。代码如下:
import pandas as pd
df = {'drive_mile': [15.1, 2.1, 7.12], 'price': [40, 9, 31]}
df = pd.DataFrame(df)
df['price/km'] = df[['drive_mile', 'price']].apply(lambda x: x[1]/x[0])
print(df)
我得到以下结果:
drive_mile price price/km
0 15.10 40 NaN
1 2.10 9 NaN
2 7.12 31 NaN
为什么会发生这种情况?我该如何解决?
【问题讨论】:
-
df[['drive_mile', 'price']].apply(lambda x: x[1]/x[0], axis = 1) -
谢谢,没想到会这么简单……
-
您使用 apply 的任何具体原因?更有效的方法是
df.price/df.drive_mile -
我习惯用apply来处理一个dataframe,所以没多想。下次直接用除法,谢谢!
标签: python-3.x pandas