我有以下数据:
具有key: value
结构tuple(str, str,): list[float]
的字典dict
{
('A', 'B'): [0, 1, 2, 3],
('A', 'C'): [4, 5, 6, 7],
('A', 'D'): [8, 9, 10, 11],
('B', 'A'): [12, 13, 14, 15]
}
以及具有与字典中的键相对应的2列索引的panda Dataframe df
:
df.set_index("first", "second"]).sort_index()
print(df.head(4))
==============================================
tokens
first second
A B 166
C 128
D 160
B A 475
我想在df
中创建一个新列numbers
,其值来自dict
,其键对应于df
中的索引行。
print(df.head(4))
========================================================================
tokens numbers
first second
A B 166 [0, 1, 2, 3]
C 128 [4, 5, 6, 7]
D 160 [8, 9, 10, 11]
B A 475 [12, 13, 14, 15]
实现此目标的最佳方法是什么?请记住性能,因为此 Dataframe 可能有10 - 100k行长
2条答案
按热度按时间6tdlim6h1#
您可以从dict创建一个系列,然后分配:
或Map索引:
输出:
cld4siwp2#
创建一个系列,然后将其与 Dataframe 连接: