pandas:转换集合的数据框列时,缓冲区的维数错误(预期为1,为0)

时间:2019-04-04 13:51:57

标签: python pandas dataframe

我有一个数据框,其中的一列包含一个元素集。单元素始终为str类型。我想将此列的值更改为每个集合中的那个str

到目前为止,我对熊猫的理解使我在数据框中使用了transform函数。因为我只想更改一列,所以我专门在该列上调用它。

我已经尝试过maptransformapply(我不能(?)使用applymap,因为该列只是一个系列)。我尝试过的例子是这样的:

df['foo'].map(''.join)
df['foo'].transform(''.join)
df['foo'].apply(''.join)

这将按列返回我的列,但不会就地更改df的{​​{1}}列的值。然后,我尝试了这些:

foo

df['foo'] = df['foo'].map(''.join) df['foo'] = df['foo'].transform(''.join) df['foo'] = df['foo'].apply(''.join) 换为''.join,会发生相同的错误。

来自lambda x: next(iter(x))的一些示例数据(感谢Yuca的建议):

head(df)

treatment AAA AAA AAA ... BBB BBB foo 15025 0.0 0.0 0.0 ... 126250.0 191730.0 {K00134} 6746 1523000.0 2374300.0 1394500.0 ... 536750.0 1179000.0 {K00134} 11097 1146200.0 423280.0 316280.0 ... 0.0 115880.0 {K00895} 3098 193000.0 57943.0 94483.0 ... 0.0 191530.0 {K01689} 14797 53168.0 0.0 65262.0 ... 0.0 0.0 {K00169}

我认为我对[5 rows x 9 columns]applymap等的理解需要一些工作,但是我只想弄清楚如何做到这一点,也许是为什么我的方法不可行。工作。谢谢!

1 个答案:

答案 0 :(得分:0)

修复:如@Yuca所述,我有重复的列名。这是因为我之前从分配给df列的原始MultiIndex中删除了2/3级。当我用唯一名称重新分配列时,带有=的行有效!谢谢大家的帮助。