D. *_*aan 3 python dataframe python-3.x pandas
我有一个具有以下结构的 pandas 数据框:
df_测试
V | A | B | C | D
-10 | nan | nan | nan | nan
-9.9 | 10 | 1 | -2200 | 100
-9.8 | 11 | 2 | -2211 | 1
Run Code Online (Sandbox Code Playgroud)
我想添加一个新列,minimum_difference其中包含该特定行的绝对值最小的列名称(忽略V),如下所示:
V | A | B | C | D | minimum_difference
-10 | nan | nan | nan | nan | nan
-9.9 | 10 | 1 | -2200 | 100 | B
-9.8 | 11 | 2 | -2211 | 1 | D
Run Code Online (Sandbox Code Playgroud)
小智 5
您可以使用df.drop跳过V列,并将df.abs数据帧的值转换为其绝对等效值,并使用df.idxminwithaxis=1查找最小(绝对)值的索引(这将是列名称):
df_test['minimum_difference'] = df_test.drop('V', axis=1).abs().idxmin(axis=1)
Run Code Online (Sandbox Code Playgroud)
输出:
>>> df
V A B C D minimum_difference
0 -10.0 NaN NaN NaN NaN NaN
1 -9.9 10.0 1.0 -2200.0 100.0 B
2 -9.8 11.0 2.0 -2211.0 1.0 D
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
601 次 |
| 最近记录: |