[英]How to multiply all columns of a dataframe based on a condition?
for col in df.columns.tolist()
df[col] = df[col].apply(lambda x: x * 1000 if x < 1, axis=1)
如果第一列不是数字,则使用多个所有列,而不首先由DataFrame.iloc
按1000
或1
按条件选择numpy.where
:
df = pd.DataFrame({
'A':list('abc'),
'B':[4,-5,4],
'C':[7,8,-9],
'D':[7,1,0]})
df.iloc[:, 1:] *= np.where(df.iloc[:, 1:] < 1, 1000, 1)
print (df)
A B C D
0 a 4 7 7
1 b -5000 8 1
2 c 4 -9000 0
如果第一列是按条件索引多个所有列:
df = pd.DataFrame({
'B':[4,-5,4],
'C':[7,8,-9],
'D':[7,1,0]}, index=list('abc'))
df[df < 1] *= 1000
#same like
#df[df < 1] = df[df < 1] * 1000
print (df)
B C D
a 4 7 7
b -5000 8 1
c 4 -9000 0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.