gpt4 book ai didi

python - 无需强制转换的 Pandas 单行索引

转载 作者:太空宇宙 更新时间:2023-11-03 11:15:12 25 4
gpt4 key购买 nike

索引包含对象(字符串)的 Pandas DataFrame 的单行返回一个对象类型的 Series。

df1 = pd.DataFrame({'a': np.arange(3), 'b': np.arange(0.5,3),'c': list('def')})

df1
a b c
0 0 0.5 d
1 1 1.5 e
2 2 2.5 f

df1.loc[0]
a 0
b 0.5
c d
Name: 0, dtype: object

索引不包含对象(字符串)的 Pandas DataFrame 的单行返回一个转换其值的系列。列 a 在 DataFrame 中属于 int64 类型。结果系列包含 a 列的值作为 float64

df2 = pd.DataFrame({'a': np.arange(3), 'b': np.arange(0.5,3)})

df2
a b
0 0 0.5
1 1 1.5
2 2 2.5

df2.loc[0]

a 0.0
b 0.5
Name: 0, dtype: float64

这种行为似乎并不一致,是吗?如何在不将整数转换为 float 的情况下选择第二个 DataFrame df2 的一行?

最佳答案

Series中有多个type时,pandas会使用object来处理,如果是float和int,它会将 int 更改为 float

df1.loc[0].map(type)
Out[6]:
a <class 'numpy.int32'>
b <class 'numpy.float64'>
c <class 'str'>
Name: 0, dtype: object

关于python - 无需强制转换的 Pandas 单行索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53175338/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com