Skip to main content
 首页 » 编程设计

python之Pandas 列列表添加

2025年05月04日12java哥

我有一个 pandas dataframe 列,它由可变大小的元素列表组成,我有另一个列表名称 country=[A1,A2,A3] 我的 Dataframe 是这样的:

A  B 
1  [A1,A2] 
2  [A1,A2,A4,A5] 
3  [A7,A8,A9] 

我想要的是列中列表的长度不应大于 3。如果它大于 3。如果长度小于 3,则将其删除最后一个元素。然后附加那些不存在的 country_list 中的值在 pandas 列列表中。我的最终输出应该是这样的:

A   B 
1   [A1,A2,A3] 
2   [A1,A2,A4] 
3   [A7,A8,A9] 

请您参考如下方法:

您可以使用 DataFrame.apply :

country = ['A1', 'A2', 'A3'] 
df = pd.DataFrame({'A':[1,2,3, 4], 
                 'B':[['A1', 'A2'], ['A1','A2','A4','A5'], ['A7','A8','A9'], ['A5']]}) 
df 
 
    A   B 
0   1   [A1, A2] 
1   2   [A1, A2, A4, A5] 
2   3   [A7, A8, A9] 
3   4   [A5] 
 
def new_list(x): 
    if len(x)>=3: 
        return x[:3] 
    else: 
        for val in country: 
            if val not in x: 
                x.append(val) 
            if len(x)==3: 
                return x 
 
df['B'] = df['B'].apply(new_list) 
df 
 
    A      B                 
0   1   [A1, A2, A3] 
1   2   [A1, A2, A4] 
2   3   [A7, A8, A9] 
3   4   [A5, A1, A2]