我想从字典创建一个 pandas 数据框,但在创建时在选定的列上设置多个数据类型。编辑 - 应该说清楚 - 我已经创建了字典并在本例中将其作为 col_dets 传递。
df = pd.DataFrame(col_dets, index=[0]).astype(dict.fromkeys(df.columns[[3, 6, 9]], 'float64'))
我知道以上是不正确的,但是有没有办法做到这一点?理想情况下,说明这些索引处的列是 float64,其他索引处的列是 int64(例如?)
假设这是您之前的问题的后续问题,并且您想根据列位置分配不同的类型,您可以使用:
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])