仅将列中的正值乘以 100

Multiply only positive values within a column by 100

任何大于 0 的值都应乘以 100。

示例数据集:

df = pd.DataFrame({'col1': ['A','B','C'], 'col2':[-0.42,0.091,0.0023], 'col3': [30, 10,20]})

   col1     col2   col3
0     A    -0.42     30
1     B    0.091     10
2     C   0.0023     20

col2 的预期结果如下所示:

   col1     col2   col3
0     A    -0.42     30
1     B      9.1     10
2     C     0.23     20

不知道如何解决这个问题,如果有人可以使用 python/pandas

提供编码或指导

如果每个值小于 0,您可以使用 np.where() 到 select 1,对于大于 0 的值,可以使用 100,然后将列乘以结果数组:

df['col2'] *= np.where(df['col2'] > 0, 100, 1)

输出:

>>> df
  col1  col2  col3
0    A -0.42    30
1    B  9.10    10
2    C  0.23    20

使用loc索引:

df.loc[df['col2'] > 0, 'col2'] *= 100
print(df)

# Output:
  col1  col2  col3
0    A -0.42    30
1    B  9.10    10
2    C  0.23    20

你可以这样做:

df['col2'] = [row['col2'] if row['col2']<0 else row['col2']*100 for i,row in df.iterrows()]