从字典创建数据框,并为列设置多种数据类型

问题描述 投票:0回答:1

我想从字典创建一个 pandas 数据框,但在创建时在选定的列上设置多个数据类型。编辑 - 应该说清楚 - 我已经创建了字典并在本例中将其作为 col_dets 传递。

df = pd.DataFrame(col_dets, index=[0]).astype(dict.fromkeys(df.columns[[3, 6, 9]], 'float64'))

我知道以上是不正确的,但是有没有办法做到这一点?理想情况下,说明这些索引处的列是 float64,其他索引处的列是 int64(例如?)

python pandas dataframe dictionary dtype
1个回答
0
投票

假设这是您之前的问题的后续问题,并且您想根据列位置分配不同的类型,您可以使用:

dtypes = {3: 'float32', 6: 'float64', 9: 'complex64'}

df = df.astype(dict(zip(df.columns[list(dtypes)], dtypes.values())))

print(df.dtypes)

输出:

col0       object
col1       object
col2       object
col3      float32
col4       object
col5       object
col6      float64
col7       object
col8       object
col9    complex64
dtype: object

使用的输入:

col_dets = [f'col{i}' for i in range(10)]
df = pd.DataFrame(columns=col_dets, index=[0])
© www.soinside.com 2019 - 2024. All rights reserved.