仅将列中的正值乘以 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()]
任何大于 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()]