首页 > 解决方案 > 如何将数据框列列表值转换为元素

问题描述

嗨,我有一个这样的数据框:

        A
   0    []
   1    [1234] 
   2    []

我想把它改成:

        A
   0    0
   1    1234 
   2    0

我怎样才能做到这一点?

我尝试

df['A'] = [a[0] if len(a) > 0 else 0 for a in df['A']]

标签: pythonpandaslistdataframe

解决方案


第一个想法是选择第一个值,将缺失值替换为0空列表并最后转换为整数:

df['A'] = df['A'].str[0].fillna(0).astype(int)

或者numpy.where通过比较列表长度的掩码使用:

df['A'] = np.where(df['A'].str.len() == 0, 0, df['A'].str[0]) 

推荐阅读