【发布时间】:2021-12-31 15:33:10
【问题描述】:
我有一个数据框,想根据另一列的条件更新一列中的特定单元格。
ID Name Metric Unit Value
2 1 K2 M1 msecond 1
3 1 K2 M2 NaN 10
4 2 K2 M1 usecond 500
5 2 K2 M2 NaN 8
条件是,如果Unit字符串为msecond,则将Value列中的对应值乘以1000,存放在同一个地方。考虑行迭代的恒定步长(二乘二),下面的代码是不正确的
i = 0
while i < len(df_group):
x = df.iloc[i].at["Unit"]
if x == 'msecond':
df.iloc[i].at["Value"] = df.iloc[i].at["Value"] * 1000
i += 2
但是,输出与修改前相同。我该如何解决?还有什么替代方法可以更好地编码而不是那个while循环?
【问题讨论】:
标签: python-3.x pandas