我正在尝试从CSV文件中获取每一列的所有数据类型。
没有文件中有关数据类型的文档,手动检查将花费很长时间(它有150列)。
开始使用这种方法:
df = pd.read_csv('/tmp/file.csv')
>>> df.dtypes
a int64
b int64
c object
d float64
以上方法是否足够好,还是有更好的方法找出数据类型?
-文件有150列。当我输入df.types
时-我只能看到15列左右。怎么看全部?
答案 0 :(得分:1)
根据文件的大小,您可以使用pd.read_csv
的nrows
参数仅读取前几行来节省一些时间:
df = pd.read_csv('/tmp/file.csv', nrows=25)
这仅在您确定可以从前n行正确推断出类型的情况下才有用,因此请务必小心。
将数据(或其子集)加载到DataFrame中之后,您可以通过多种不同的方式查看类型,其中一些已经发布,但是我将使用简单的方法来共享另一个循环并iteritems
:
for name, dtype in df.dtypes.iteritems():
print(name, dtype)
a int64
b float64
c object
答案 1 :(得分:0)
我认为这是一个很好的方法。
它返回一个Series对象。
要查看更多行,可以使用此行:
pd.set_option('display.max_rows', 250)
答案 2 :(得分:0)
您可以更新max_info_columns
显示选项并使用DataFrame.info()
pd.set_option('max_info_columns', 200)
df.info()
答案 3 :(得分:0)
有一些方法可以做到这一点。我喜欢使用
df.dtypes
或
for i, v in enumerate(df.columns):
print(i, v)