我尝试在这样的代码中运行熊猫数据框中的一列:
for item in df['delta']:
if float(item) < 0:
print(item)
每当我检测到值小于0的项目时,我都想加1,000,000并将结果放回数据框中。
我尝试过类似的事情:
df['delta'][item] = float(item) + 1000000
但是我得到一个关键错误。
如何访问for循环的当前位置?
答案 0 :(得分:2)
假设你有
df = pd.DataFrame({'col_1': [0,1,2,3,4,5,-1,-2,-3]})
col_1
0 0
1 1
2 2
3 3
4 4
5 5
6 -1
7 -2
8 -3
您只需使用loc
和+=
运算符即可
df.loc[df['col_1'] < 0, 'col_1'] += 10
col_1
0 0
1 1
2 2
3 3
4 4
5 5
6 9
7 8
8 7
答案 1 :(得分:0)
我建议为此使用内置的apply()
函数
df['delta'] = df['delta'].apply( lambda item: float(item) + 1000000 if float(item) < 0 else item )