【发布时间】:2022-12-07 23:52:23
【问题描述】:
这是数据框的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(column) 的结果并将其放入 status(column)
【问题讨论】:
-
df['Status'] = df['charge'].where(df['Status'].eq('Ria'), 'Not Found')
标签: python pandas dataframe lambda apply