gpt4 book ai didi

python - 如何根据其他列中的数据替换 python pandas 中的行与行之间的某些值?

转载 作者:行者123 更新时间:2023-12-01 02:07:47 25 4
gpt4 key购买 nike

现在我正在使用 python pandas,但找不到此问题的解决方案:我有一个数据框 df,我想根据同一数据集另一列中的标签将某些数据从一行复制到另一行(替换)。我认为一个例子是最好的展示方式:

 Kind  Type       V1      V2    V3 

AAA AAA 7 8 4

BBB AAA 4 8 1

CCC AAA 3 1 7

AAA BBB 2 5 3

BBB BBB 11 9 8

CCC BBB 7 7 10

AAA CCC 5 8 2

BBB CCC 2 3 7

CCC CCC 4 10 6

我想要的是将每种类型的类型 AAA 替换为类型 BBB,但仅限于行 Value3(V3)。那么结果将是:

 Kind     Type   V1     V2    V3 

AAA AAA 7 8 1

BBB AAA 4 8 1

CCC AAA 3 1 7

AAA BBB 2 5 8

BBB BBB 11 9 8

CCC BBB 7 7 10

AAA CCC 5 8 7

BBB CCC 2 3 7

CCC CCC 4 10 6

如您所见,这 3 个数字现在已替换为 BBB 类型的值。

df.loc[df['Kind']=='AAA','V3'] = x  # x is numeric

我只能用数字 x 来替换每个 V3 数字与 AAA 的组合,但这不是我想要的。因为数字都不同。有人可以帮我吗?谢谢!

最佳答案

boolean indexing过滤DataFrame并为 map 创建系列仅限 KindAAA 的行:

s = df.loc[df['Kind'] == 'BBB', ['Type', 'V3']].set_index('Type')['V3']
print (s)
Type
AAA 1
BBB 8
CCC 7
Name: V3, dtype: int64

df.loc[df['Kind']=='AAA','V3'] = df['Type'].map(s)
print (df)
Kind Type V1 V2 V3
0 AAA AAA 7 8 1
1 BBB AAA 4 8 1
2 CCC AAA 3 1 7
3 AAA BBB 2 5 8
4 BBB BBB 11 9 8
5 CCC BBB 7 7 10
6 AAA CCC 5 8 7
7 BBB CCC 2 3 7
8 CCC CCC 4 10 6

关于python - 如何根据其他列中的数据替换 python pandas 中的行与行之间的某些值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48902224/

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