gpt4 book ai didi

python - 为什么一个字符串会导致整个 Pandas DataFrame 是非数字的?

转载 作者:行者123 更新时间:2023-12-04 08:16:53 26 4
gpt4 key购买 nike

如果我使用数值创建一个 Pandas DataFrame,这会反射(reflect)在 DataFrame 中。但是,如果第一个元素是字符串,即 'a' ,整个 DataFrame 变灰,其中的所有数字都转换为字符串,即 3变成 '3' .为什么以及如何保留数据类型的多样性?

import numpy as np
import pandas as pd

AA= pd.DataFrame(np.asarray([1,2,3]))
AA2 = pd.DataFrame(np.asarray(['a','b',3]))
输出是
enter image description here

最佳答案

第一个问题是使用 np.asarray(['a','b',3]所有数据都转换为字符串、对象。

AA2 = pd.DataFrame(np.asarray(['a','b',3]))
print (AA2.dtypes)
0 object
dtype: object

print (AA2[0].apply(lambda x: type(x)))
0 <class 'str'>
1 <class 'str'>
2 <class 'str'>
Name: 0, dtype: object
如果传递列表得到混合数据 - 带字符串的数字:
AA2 = pd.DataFrame(['a','b',3])

print (AA2.dtypes)
0 object
dtype: object

print (AA2[0].apply(lambda x: type(x)))
0 <class 'str'>
1 <class 'str'>
2 <class 'int'>
Name: 0, dtype: object
但是使用混合值是有问题的,大多数数字运算都失败了,所以最好避免它。

关于python - 为什么一个字符串会导致整个 Pandas DataFrame 是非数字的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65668512/

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