gpt4 book ai didi

python - 访问 Pandas 列中不规则出现的列表值的第一项

转载 作者:太空宇宙 更新时间:2023-11-03 10:53:30 25 4
gpt4 key购买 nike

我有一个 pandas 数据框,其中一列中的某些值中出现了一个列表值。我需要能够提取列表的第一项,如果它是一个列表,如果它不是一个列表,那么该值将保持不变。我正在努力使用 lambda 函数来实现它:

df1 = pd.DataFrame({'Fruits':['Apple',['Banana',6],'Kiwi','Cheese']})

df1['Fruits'] = df1['Fruits'].apply(lambda(x): x[0] if (type(x) == 'list') else x)

如果我使用上面的列保持不变。我猜这一定是 lambda 函数中的条件语句有问题....

如果有更好的方法在 Pandas 中实现这一点,我也会感兴趣。

最佳答案

您可以将 '''list' 删除到 list:

df1['Fruits'] = df1['Fruits'].apply(lambda  x : x[0] if type(x) == list else x)
print (df1)
Fruits
0 Apple
1 Banana
2 Kiwi
3 Cheese

类似的解决方案是使用isinstance:

df1['Fruits'] = df1['Fruits'].apply(lambda x: x[0] if isinstance(x, list) else x)
print (df1)
Fruits
0 Apple
1 Banana
2 Kiwi
3 Cheese

或者可以使用 list comprehension:

df1['Fruits'] = [x[0] if type(x) == list else x for x in df1['Fruits']]
print (df1)
Fruits
0 Apple
1 Banana
2 Kiwi
3 Cheese

关于python - 访问 Pandas 列中不规则出现的列表值的第一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45662115/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com