python - 将 float 分配给子集返回 1

标签 python pandas indexing subset slice

我尝试将 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 的方式很奇怪,我不建议正确链接调用 ilocloc对数据帧进行切片:

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/

相关文章:

python - 对来自 2 个数据帧 : Python Pandas 的匹配列执行数学运算

python - Pandas 将 NaN 替换为 None 表现出违反直觉的行为

python - 以最小的内存占用拆分大型 Pandas Dataframe

MySQL 查询速度太慢

python - 获取订单中的轮廓

python - 在包含 python 关键字的文件中写入行文本?

python - 并排显示两张 Folium map ?

python - 如何将 python 包上传到 Nexus sonatype 私有(private)仓库

postgresql - 了解为什么我的 Postgres 查询在没有索引的情况下更快

ajax - 使用哈希索引 url #!