【发布时间】:2019-05-01 09:52:07
【问题描述】:
我的数据框如下所示
df1
id c1
1 abc
2 def
3 ghi
df2
id set1
1 [123,456]
2 [789]
当我加入 df1 和 df2 (final_data = df1.merge(df2, how = 'left'))。它给了我
final_df
id c1 set1
1 abc [123,456]
2 def [789]
3 ghi NaN
我正在使用下面的代码将 NaN 替换为空数组 []
for row in final_df.loc[final_df.set1.isnull(), 'set1'].index:
final_df.at[row, 'set1'] = []
问题在于 df2 是否为空数据框。它给了
ValueError: 使用序列设置数组元素。
PS:我使用的是 pandas 0.23.4 版本
【问题讨论】:
-
Pandas 并不是真正设计用于处理单个单元格中的集合。
fillna()不允许我设置一个空数组,我担心存在的任何解决方案都会很麻烦。您应该注意,使用这种结构,您无法获得 numpy/pandas 的所有矢量化特征。