我有一个 example.csv,看起来像 列 1、列 2、d、e AA,1,BB,2 bb,2,aa,1 抄送,3,DD,3
我愿意
import polars as pl
dtypes = {
'car' : pl.String,
'game' : pl.Int32,
'house' : pl.String,
'bob' : pl.String
}
df = pl.read_csv(
"example.csv",
dtypes=dtypes
)
print(df.columns)
输出为: [‘汽车’、‘游戏’、‘房子’、‘鲍勃’]
这会覆盖 csv 中的列名称,这不是我所期望的行为
Polars
默认使用第一行作为标题行,这意味着它将第一行视为列名称。但是,如果您指定的 dtypes
字典中的键与 CSV 文件中的列名称不匹配,则 Polars
将使用 dtypes
字典中的键作为列名称。 如果您想保留 CSV 文件中的原始列名称,并仍然使用 dtypes
字典来指定数据类型,则需要确保 dtypes
字典中的键与 CSV 文件中的列名称完全匹配。
这是代码的更正部分,也根据您的其他列进行修改:
import polars as pl
# Correct data types matching the CSV-file column names
dtypes = {
'col1': pl.Utf8,
'col2': pl.Int32,
'd': pl.Utf8,
'e': pl.Int32,
}