我有一個具有這種結構的熊貓資料框:
df_test
V | A | B | C | D
-10 | nan | nan | nan | nan
-9.9 | 10 | 1 | -2200 | 100
-9.8 | 11 | 2 | -2211 | 1
我想添加一個新列,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
uj5u.com熱心網友回復:
您可以使用df.drop跳過該V列,df.abs并將資料框的值轉換為其絕對等效值,并使用df.idxminwithaxis=1查找最小(絕對)值的索引(將是列名):
df_test['minimum_difference'] = df_test.drop('V', axis=1).abs().idxmin(axis=1)
輸出:
>>> 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
uj5u.com熱心網友回復:
您可以檢查 a rowcontains NaN,然后 put NaN,否則計算min行的 并放置索引。
In [101]: import numpy as np
In [102]: df['minimum_difference'] = np.where(df.isna().any(1), np.nan, df.abs().idxmin(1))
In [103]: df
Out[103]:
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
uj5u.com熱心網友回復:
在這里,我分享 Mayank 的片段,但幾乎沒有更新。
In [84]: df['minimum_difference'] = df.ix[:, 1:].abs().idxmin(1)
In [85]: df
Out[85]:
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 200.0 B
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/396536.html
上一篇:加載不同背景場景的錯誤
