【发布时间】:2022-01-18 17:03:54
【问题描述】:
这是我的示例数据框。我想将A 和B 列中的dtypes 转换为boolean,C 和C 中的string 和D 和E 中的integer。
我正在尝试使用熊猫的方法convert_dtypes(),但它会为每个人返回string。如何“自动”转换类型?
{'A': {0: nan,
1: nan,
2: nan,
3: nan,
4: nan,
5: nan,
6: nan,
7: 'true',
8: nan,
9: 'true'},
'B': {0: nan,
1: nan,
2: nan,
3: nan,
4: nan,
5: nan,
6: nan,
7: 'true',
8: nan,
9: 'true'},
'C': {0: 'CustomersData',
1: 'CustomersData',
2: 'CustomersData',
3: 'CustomersData',
4: 'CustomersData',
5: 'CustomersData',
6: 'CustomersData',
7: 'TestData',
8: 'CustomersData',
9: 'CustomersData'},
'D': {0: '4014',
1: '4014',
2: '4014',
3: '4014',
4: '4014',
5: '4014',
6: '4014',
7: '500',
8: '4014',
9: '500'},
'E': {0: '8',
1: '8',
2: '8',
3: '8',
4: '8',
5: '8',
6: '13',
7: '13',
8: '8',
9: '13'}}
df.convert_types().dtypes 给出:
A string
B string
C string
D string
E string
【问题讨论】:
-
pandas.pydata.org/docs/reference/api/… 不会像您认为的那样做 - 它将类型从“旧”类型转换为支持
pd.NA的相应“新”类型 - 当您加载数据时,你应该指定你想要的特定数据类型 -
@ifly6 我把它作为每个请求的键值列,这是预处理的结果。如何推断每列并将其转换为最合适的 dtype?
-
使用原始对象列(即在尝试调用
convert_dtypes之前)尝试pandas.pydata.org/docs/reference/api/…。 -
@ifly6 没有变化。相同的行为。请指教。
-
你必须明确指定它们
标签: python-3.x pandas dataframe dtype