gpt4 book ai didi

python - Pandas:如何检查列表类型的列是否在数据框中

转载 作者:行者123 更新时间:2023-11-28 22:26:13 25 4
gpt4 key购买 nike

如何从列表列创建新的列表列

我的数据框:

id    x    list_id
1 20 [2, 4]
2 10 [1, 3]
3 10 [1]
4 30 [1, 2]

我想要的:

id    x    list_id    list_x
1 20 [2, 4] [10, 30]
2 10 [1, 3] [20, 10]
3 10 [1] [20]
4 30 [1, 2] [20, 10]

我的第一个想法是遍历每一行,然后检查 id 是否在列表中

for index, row in df.iterrows():
if ( df['id'].isin(row['list_id']) ):
do_somthing

但它不起作用,任何建议!!

最佳答案

使用列表理解:

df.loc[:,'list_x'] = [df.x[df['id'].isin(l)].values for l in df.list_id]

带有虚拟数据的完整示例:

import pandas as pd

data= {
'id': [1,2,3,4],
'x': [20,10,10,30],
'list_id': [[2,4],[1,3],[1],[1,2]],
}

df = pd.DataFrame(data)

df.loc[:,'list_x'] = [df.x[df['id'].isin(l)].values for l in df.list_id]

输出

print df

list_id x list_x
1 [2, 4] 20 [10, 30]
2 [1, 3] 10 [20, 10]
3 [1] 10 [20]
4 [1, 2] 30 [20, 10]

关于python - Pandas:如何检查列表类型的列是否在数据框中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44982071/

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