如何将数据框列列表值转换为元素

时间:2019-12-07 10:46:04

标签: python pandas list dataframe

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

        A
   0    []
   1    [1234] 
   2    []

我想将其更改为:

        A
   0    0
   1    1234 
   2    0

我该怎么做?

2 个答案:

答案 0 :(得分:2)

第一个想法是选择第一个值,将空列表中的缺失值替换为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]) 

答案 1 :(得分:2)

这应该起作用: (假设A列的所有元素都是列表类型)

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

否则(在访问第一个元素之前,请确保该元素是列表:

df['A'] = [a if isinstance(a, int) else (a[0] if a else 0) for a in df['A']]