我有一个 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
提交
取消