【问题标题】:Python - How to get data types for all columns in CSV file?Python - 如何获取 CSV 文件中所有列的数据类型?
【发布时间】:2019-04-03 06:24:10
【问题描述】:

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

开始使用这种方法:

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

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

上述方法是否足够好,或者有更好的方法来确定数据类型?
另外 - 文件有 150 列。当我输入df.types 时,我只能看到大约 15 列。如何全部查看?

【问题讨论】:

    标签: python pandas dataframe types


    【解决方案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
    

    【讨论】:

      【解决方案2】:

      我认为这是一个很好的方法。 它返回一个 Series 对象。 要查看更多行,您可以使用以下行: pd.set_option('display.max_rows', 250)

      【讨论】:

        【解决方案3】:

        您可以更新max_info_columns 显示选项并使用DataFrame.info()

        pd.set_option('max_info_columns', 200)
        df.info()
        

        【讨论】:

          【解决方案4】:

          有一些方法可以做到这一点。我喜欢用

          df.dtypes
          

          for i, v in enumerate(df.columns):
              print(i, v)
          

          【讨论】:

            猜你喜欢
            • 2020-07-21
            • 1970-01-01
            • 1970-01-01
            • 2018-04-16
            • 2023-03-30
            • 2020-10-17
            • 1970-01-01
            • 1970-01-01
            • 2013-04-16
            相关资源
            最近更新 更多