尝试创建一个函数X(df):根据以下标准替换 Dataframe 的FIRST列的值:
1.如果该值是0到0.5之间的数字(即0〈= value〈= 0.5),则将该值替换为该行中所有列的值之和。
1.如果值在1.0和2.0之间(即1.0〈=值〈= 2.0),则将此值替换为-99。(如果在第1部分中,原始值为0.1,并且所有列(该行中)的总和为1.5,则在第2部分中,此值将替换为-99。)
original df:
|idx| |A| |B|
|0| |0.4| 1.0
|1| |0.0| 0.5
|2| |10.0| 0.0
|3| |1.5| -100.0
|4| |0.1| 0.1
|5| |0.5| -10.0
I have this so far:
def X(df):
for i in df.iloc[:, 0]:
if (i >= 0) and (i <= 0.5):
df.iloc[:,0] = df.sum(axis=1)
elif (i>=1) and (i<=2):
df.iloc[:,0] = int(-99)
else:
continue
return df
'''
I got:
A B
idx
0 3.4 1.0
1 1.5 0.5
2 10.0 0.0
3 -298.5 -100.0
4 0.4 0.1
5 -29.5 -10.0
I was expecting:
A B
idx
0 0.5 1.0
1 0.5 0.5
2 10.0 0.0
3 -99 -100.0
4 0.2 0.1
5 -9.5 -10.0
1条答案
按热度按时间vbkedwbf1#
示例
输出(
df
):代码
使用
np.select
实验结果:
最终版
将结果写入A列
所需输出: