我有一个数据框,其中的一列包含一个元素集。单元素始终为str
类型。我想将此列的值更改为每个集合中的那个str
。
到目前为止,我对熊猫的理解使我在数据框中使用了transform
函数。因为我只想更改一列,所以我专门在该列上调用它。
我已经尝试过map
,transform
和apply
(我不能(?)使用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]
,apply
,map
等的理解需要一些工作,但是我只想弄清楚如何做到这一点,也许是为什么我的方法不可行。工作。谢谢!
答案 0 :(得分:0)
修复:如@Yuca所述,我有重复的列名。这是因为我之前从分配给df
列的原始MultiIndex中删除了2/3级。当我用唯一名称重新分配列时,带有=
的行有效!谢谢大家的帮助。