gpt4 book ai didi

python - 根据 Pandas 一行中的值从DataFrame中选择列

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

假设我有来自 this question 的相同数据框:

    A0      A1      A2      B0      B1      B2      C0      C1
0 0.84 0.47 0.55 0.46 0.76 0.42 0.24 0.75
1 0.43 0.47 0.93 0.39 0.58 0.83 0.35 0.39
2 0.12 0.17 0.35 0.00 0.19 0.22 0.93 0.73
3 0.95 0.56 0.84 0.74 0.52 0.51 0.28 0.03
4 0.73 0.19 0.88 0.51 0.73 0.69 0.74 0.61
5 0.18 0.46 0.62 0.84 0.68 0.17 0.02 0.53
6 0.38 0.55 0.80 0.87 0.01 0.88 0.56 0.72

但不想返回每行的最小值(仅 B0、B1、B2)

    A0      A1      A2      B0      B1      B2      C0      C1      Minimum
0 0.84 0.47 0.55 0.46 0.76 0.42 0.24 0.75 0.42
1 0.43 0.47 0.93 0.39 0.58 0.83 0.35 0.39 0.39
2 0.12 0.17 0.35 0.00 0.19 0.22 0.93 0.73 0.00
3 0.95 0.56 0.84 0.74 0.52 0.51 0.28 0.03 0.51
4 0.73 0.19 0.88 0.51 0.73 0.69 0.74 0.61 0.51
5 0.18 0.46 0.62 0.84 0.68 0.17 0.02 0.53 0.17
6 0.38 0.55 0.80 0.87 0.01 0.88 0.56 0.72 0.01

我想返回包含每行(仅 B0、B1、B2)的最小值的列名:

    A0      A1      A2      B0      B1      B2      C0      C1      col_of_min
0 0.84 0.47 0.55 0.46 0.76 0.42 0.24 0.75 B2
1 0.43 0.47 0.93 0.39 0.58 0.83 0.35 0.39 B0
2 0.12 0.17 0.35 0.00 0.19 0.22 0.93 0.73 B0
3 0.95 0.56 0.84 0.74 0.52 0.51 0.28 0.03 B2
4 0.73 0.19 0.88 0.51 0.73 0.69 0.74 0.61 B0
5 0.18 0.46 0.62 0.84 0.68 0.17 0.02 0.53 B2
6 0.38 0.55 0.80 0.87 0.01 0.88 0.56 0.72 B1

执行此操作的最佳方法是什么?

最佳答案

你可以使用filter()连同idxmin()方法:

In [40]: x
Out[40]:
A0 A1 A2 B0 B1 B2 C0 C1
0 0.84 0.47 0.55 0.46 0.76 0.42 0.24 0.75
1 0.43 0.47 0.93 0.39 0.58 0.83 0.35 0.39
2 0.12 0.17 0.35 0.00 0.19 0.22 0.93 0.73
3 0.95 0.56 0.84 0.74 0.52 0.51 0.28 0.03
4 0.73 0.19 0.88 0.51 0.73 0.69 0.74 0.61
5 0.18 0.46 0.62 0.84 0.68 0.17 0.02 0.53
6 0.38 0.55 0.80 0.87 0.01 0.88 0.56 0.72

In [41]: x['col_of_min'] = x.filter(like='B').idxmin(axis=1)

In [42]: x
Out[42]:
A0 A1 A2 B0 B1 B2 C0 C1 col_of_min
0 0.84 0.47 0.55 0.46 0.76 0.42 0.24 0.75 B2
1 0.43 0.47 0.93 0.39 0.58 0.83 0.35 0.39 B0
2 0.12 0.17 0.35 0.00 0.19 0.22 0.93 0.73 B0
3 0.95 0.56 0.84 0.74 0.52 0.51 0.28 0.03 B2
4 0.73 0.19 0.88 0.51 0.73 0.69 0.74 0.61 B0
5 0.18 0.46 0.62 0.84 0.68 0.17 0.02 0.53 B2
6 0.38 0.55 0.80 0.87 0.01 0.88 0.56 0.72 B1

关于python - 根据 Pandas 一行中的值从DataFrame中选择列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39355767/

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