我有一個 csv 文件,如果該值是總數的一半或更多A1,我想更改列中的值。A2 A3換句話說,對于 A1 中的值 1,我希望 50 是總數。我想要這樣的東西:我有這樣的東西:我只做了這個:df=pd.read_csv("book.csv",index_col=0)print(df)
1 回答

拉丁的傳說
TA貢獻1789條經驗 獲得超8個贊
我的輸入文件:
A,A1,A2,A3
Total,100,200,300
Value1,100,200,300
Value2,40,200,140
Value3,100,50,100
Value4,100,90,50
Value5,30,20,300
根據您的評論:
A1 的最大值為 100,因此如果 A1 中的任何其他值為 50 或更高,我希望該值為 100。在 A2 中,最大值為 200 個 A2 中 100 或更高的其他值,我希望這些值為 200
你只需要使用以下apply
方法:
import pandas as pd
??
df = pd.read_csv('book.csv',index_col=0, delimiter=',')
#applying the condition using a lambda
df = df.apply(lambda x : [x.max() if i >= x.max()//2 else i for i in x])
print(df)
輸出:
? A? ? ? A1? ?A2? ?A3? ? ? ? ? ? ? ? ?
Total? ?100? 200? 300
Value1? 100? 200? 300
Value2? ?40? 200? 140
Value3? 100? ?50? 100
Value4? 100? ?90? ?50
Value5? ?30? ?20? 300
添加回答
舉報
0/150
提交
取消