我有一个包含10列的数据框。想要创建一个新列,其中第9列为键,第10列为值。
我尝试过这样的事情:
df[11]={df[9] :df[10]}
我收到一个Typeerror消息,说“系列”对象是可变的,因此不能进行哈希处理。
有什么办法解决吗?
第8列包含会话号,该会话号可以在其他行中重复。我需要其他列,以便可以将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