gpt4 book ai didi

python - 从一列列表中的每个列表中获取第一个元素

转载 作者:太空宇宙 更新时间:2023-11-04 08:29:21 24 4
gpt4 key购买 nike

我有一个包含由数字列表组成的列的数据框:

idx codes       new_column
0 [12,18,5]
1 [22,15]
2 [4]
3 [15,1]

如何向包含代码列的第一个列表条目的数据框添加新列:

idx codes     new_column
0 [12,18,5] 12
1 [22,15] 22
2 [4] 4
3 [15,1] 15

I tried:
df['new_column']=df['codes'][0]

However, that didn't work.

最佳答案

最简单的方法是使用str.get

# df['new_column'] = df['codes'].str.get(0)
df['new_column'] = df['codes'].str[0]

但是,如果没有 NaN,我会建议对速度进行列表理解:

df['new_column'] = [l[0] for l in df['codes']]

如果列表可以为空,你可以这样做:

df['new_column'] = [l[0] if len(l) > 0 else np.nan for l in df['codes']]

要使用列表推导式处理 NaN,您可以使用 loc 进行子集化和赋值。

m = df['codes'].notna()
df.loc[m, 'new_column'] = [
l[0] if len(l) > 0 else np.nan for l in df.loc[m, 'codes']]

强制性的为什么列表比较值得链接:For loops with pandas - When should I care?

关于python - 从一列列表中的每个列表中获取第一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54203440/

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