【问题标题】: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_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
【解决方案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)