【发布时间】:2021-07-01 20:19:46
【问题描述】:
我有一个看起来像这样的 pandas 数据框:
| index | array | array2 |
|---|---|---|
| 1 | ['group1'] |
['group1, 'group3'] |
| 2 | ['group1', 'group4] |
['group1', 'group3'] |
| 3 | [] |
['group2', 'group3'] |
| 4 | [] |
['group2', 'group4'] |
如您所见,其中一些数组是零维的(具体来说:它们是
array([], dtype=object
)
现在,由于零维数组无法连接,我想将它们替换为 np.nans 以便可以连接它们。
如果我这样做了
data['array'].replace(np.array([]).astype(object), 0, inplace= True)
什么都没有发生!数据框保持不变,没有任何变化。 事实上,即使我手动操作:
data['array'].replace(data['array'][3], 0, inplace = True)
我的结果数据框根本没有改变...
那么我的问题是,我们如何创建一个函数来替换数据框中的所有这些零维数组以进行连接?
【问题讨论】:
-
用
replace做实验,看起来它可以匹配字符串和数字,但似乎不适用于列表或数组。您的数组具有形状 (0,),因此它实际上是 1d。对这样的数组(或任何数组)进行相等性测试很棘手。还要注意列表[]和字符串"[]显示与您的数组相同。
标签: python arrays pandas numpy