我尝试将 float 0.3
分配给 pandas 中的子集,但结果返回值 1
。但如果我分配一个像 12
这样的整数,它将返回 12
。
df = pd.DataFrame({
'A': ['A','B','C','D'],
'Val1': [1,2,3,4],
'Val2': [5,6,7,8]
})
df.set_index('A', inplace=True)
df.loc[:'D', 'Val1'].iloc[:-1] = 0.3 // returns 1 instead of 0.3
最佳答案
您使用 loc
的方式很奇怪,我不建议正确链接调用 iloc
和 loc
对数据帧进行切片:
df.loc[:-1, 'Val1'] = 0.3
Val1 Val2
A
A 0.3 5
B 0.3 6
C 0.3 7
D 4.0 8
或者明确地:
df.loc['A':'C', 'Val1'] = 0.3
关于python - 将 float 分配给子集返回 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52192449/