繁体   English   中英

如何根据条件乘以数据帧的所有列?

[英]How to multiply all columns of a dataframe based on a condition?

我想将数据帧中所有小于 1 的值乘以 1000。以下是数据帧的示例; 在此处输入图片说明

感谢你的帮助。

for col in df.columns.tolist()
    df[col] = df[col].apply(lambda x: x * 1000 if x < 1, axis=1)

如果第一列不是数字,则使用多个所有列,而不首先由DataFrame.iloc10001按条件选择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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM