熊猫:2列至键值对

时间:2020-04-13 15:17:19

标签: pandas dictionary

我有一个包含10列的数据框。想要创建一个新列,其中第9列为键,第10列为值。

我尝试过这样的事情:

df[11]={df[9] :df[10]}

我收到一个Typeerror消息,说“系列”对象是可变的,因此不能进行哈希处理。

有什么办法解决吗?

第8列包含会话号,该会话号可以在其他行中重复。我需要其他列,以便可以将1个会话的所有键值放在1行中。

1 个答案:

答案 0 :(得分:2)

您可以执行以下操作:

df[11] = [{k:v} for k, v in df.iloc[:,[9,10]].values]

例如:

df = pd.DataFrame(np.random.randn(2, 11))
df[[9,10]]

          9     10
0   -0.1223 0.6870
1   -0.1447 0.4517

df[11] = [{k:v} for k, v in df.iloc[:,[9,10]].values]
df[11]

0    {-0.12231839342645735: 0.6869982955094028}
1    {-0.14465311502679143: 0.4516671951915512}
Name: 11, dtype: object