嗨,我有一个像这样的数据框:
A
0 []
1 [1234]
2 []
我想将其更改为:
A
0 0
1 1234
2 0
我该怎么做?
答案 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']]