此问题在此处已有答案:
Pandas conditional creation of a series/dataframe column(12个答案)
昨天关门了。
这是 Dataframe 的python代码
from pandas import DataFrame
import pandas as pd
names = {'First_name': ['Hanah', 'Ria', 'Jay', 'Bholu', 'Sachin'],
'Status':['Hanah', 'Ria', 'Jay', 'Bholu', 'Sachin'],
"charge":[10,11,12,13,14]}
df = pd.DataFrame(names)
这是用于生成输出的lambda函数
df['Status'] = df['First_name'].apply(lambda x: [df["charge"]] if x == 'Ria' else 'Not Found')
print(df)
生成的输出如下:
df['Status'] = df['First_name'].apply(lambda x: [df["charge"]] if x == 'Ria' else 'Not Found')
print(df)
输出为
First_name Status charge
0 Hanah Not Found 10
1 Ria [[10, 11, 12, 13, 14]] 11
2 Jay Not Found 12
3 Bholu Not Found 13
4 Sachin Not Found 14
但我想生成输出
First_name Status charge
0 Hanah Not Found 10
1 Ria 11 11
2 Jay Not Found 12
3 Bholu Not Found 13
4 Sachin Not Found 14
第二行是Ria,因此我必须获取第二行中的charge(列)的结果,并将其置于status(列)中
2条答案
按热度按时间b09cbbtk1#
如果要使用
apply
和lambda函数,请将lambda函数应用于所有带有axis=1
Dataframedf
但我们可以用
mask
代替apply
实验结果:
pdtvr36n2#
lambda可用于def函数的位置First_name Status charge 0 Hanah未找到10 1 Ria 11 11 2 Jay未找到12 3 Bholu未找到13 4 Sachin未找到14使用def可轻松连接此表