gpt4 book ai didi

Python: Pandas :将行值与列名/键的值匹配

转载 作者:行者123 更新时间:2023-11-28 21:45:01 25 4
gpt4 key购买 nike

问题
“如何将行值与列名匹配并在 pandas 中获取相交值”

上下文
我们有一个像这样的 pandas df:

df = pd.DataFrame([{'name': 'john', 'john': 1, 'mac': 10}, {'name': 'mac', 'john': 2, 'mac': 20}], columns=["name", "john", "mac"])

看起来像这样:

name | john | mac
john | 1 | 10
mac | 2 | 20


期望的输出

name | john | mac  | value
john | 1 | 10 | 1
mac | 2 | 20 | 20

换句话说,"value" 列应该取 name 相交的相应列中的数字。

因此,如果 name == 'john',则从列 'john' 中获取值
因此,如果 name == 'mac',则从 'mac' 列中获取值

到目前为止已经尝试过
一堆 lambda(没有成功)。

规范
python :3.5.2
Pandas :0.18.1

最佳答案

Deprecation Notice: lookup was deprecated in v1.2.0

你可以使用 DataFrame.lookup ,它接受要使用的行和列标签:

In [66]: df
Out[66]:
name john mac
0 john 1 10
1 mac 2 20

In [67]: df["value"] = df.lookup(df.index, df.name)

In [68]: df
Out[68]:
name john mac value
0 john 1 10 1
1 mac 2 20 20

请注意,这会导致重复行标 checkout 现问题(可以通过添加 reset_index 轻松解决)。它应该比调用 apply 更快,后者可能会很慢,但如果您的框架不是太大,两者都应该工作得很好。

关于Python: Pandas :将行值与列名/键的值匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40181319/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com