gpt4 book ai didi

python - 当有很多列时,将 Pandas df 数据类型定义为字典的最佳方法是什么?

转载 作者:行者123 更新时间:2023-12-01 00:35:46 25 4
gpt4 key购买 nike

我经常使用 pd.read_csv() 加载 csv 文件,并且它们通常具有不同数据类型的列。

这很好,因为我可以将字典传递给 dtype 参数,其中所有列都映射了各自的数据类型。我发现的问题是,有时这些 csv 文件有很多列,并且生成的字典非常长。

很多时候,字典会是这样的:


df_dtype = {

'A' : str,
'B' : str,
'C' : int
}

但是当 df 很长时,字典开始看起来像这样:


df_dtype = {

'A' : str,
'B' : str,
'C' : int,
'D' : str,
'E' : str,
'F' : int,
'G' : str,
'H' : str,
'I' : int,
'J' : str,
'K' : str,
'L' : int,
'M' : str,
'N' : str,
'O' : int,
'P' : str,
'Q' : str,
'R' : int,
'S' : str,
'T' : str,
'U' : int,
'V' : str,
'W' : str,
'X' : int,
'Y' : str,
'Z' : str
}

这很丑陋并且使代码可读性较差。

执行此操作的最佳实践是什么?我应该将字典作为目录中的单独文件吗?有没有更漂亮的格式化方法?

最佳答案

一个想法是更改字典键中指定类型和列表中列名称的格式:

d_types = {str: ['A', 'B', 'D'], 
int: ['C','F'],
float: ['G']}

#swap key values in dict
#http://stackoverflow.com/a/31674731/2901002
d = {k: oldk for oldk, oldv in d_types.items() for k in oldv}
print (d)
{'A': <class 'str'>, 'B': <class 'str'>, 'D': <class 'str'>,
'C': <class 'int'>, 'F': <class 'int'>, 'G': <class 'float'>}

关于python - 当有很多列时,将 Pandas df 数据类型定义为字典的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57786843/

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