Python-如何获取CSV文件中所有列的数据类型?

时间:2018-09-17 14:02:23

标签: python pandas dataframe types

我正在尝试从CSV文件中获取每一列的所有数据类型。
没有文件中有关数据类型的文档,手动检查将花费很长时间(它有150列)。

开始使用这种方法:

df = pd.read_csv('/tmp/file.csv')

>>> df.dtypes
a   int64
b   int64
c   object
d   float64

以上方法是否足够好,还是有更好的方法找出数据类型?
-文件有150列。当我输入df.types时-我只能看到15列左右。怎么看全部?

4 个答案:

答案 0 :(得分:1)

根据文件的大小,您可以使用pd.read_csvnrows参数仅读取前几行来节省一些时间:

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)