[英]Replace the values of column with mean which has particular value in other column in pandas
我有一個數據框
df = pd.DataFrame([[10, -1], [20, 1], [30, -1],[40, 1], [50, 1], [60, 1], [70,-1], [80,-1], [90,-1], [100,1]], columns=['A', 'B'])
計算 A 列的平均值,B 列的整數值為 1 並賦值給 c,這里是c=54 。 我只想用 c 值替換列 A 中 B 列中具有 -1 值且值小於 c 的值。
預期 Output:
df = pd.DataFrame([[54, -1], [20, 1], [54, -1],[40, 1], [50, 1], [60, 1], [70,-1], [80,-1], [90,-1], [100,1]], columns=['A', 'B'])
怎么做?
首先在DataFrame.loc
和boolean indexing
中通過B==1
獲取A
的值,獲取平均值並通過僅比較B==-1
值的平均值來設置A
:
mean = df.loc[df['B'].eq(1), 'A'].mean()
print (mean)
54.0
mask = df['A'].lt(mean) & df['B'].eq(-1)
df.loc[mask, 'A'] = mean
print (df)
A B
0 54 -1
1 20 1
2 54 -1
3 40 1
4 50 1
5 60 1
6 70 -1
7 80 -1
8 90 -1
9 100 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.