pandas DataFrame 中的“列”数量限制为 1024

Posted

技术标签:

【中文标题】pandas DataFrame 中的“列”数量限制为 1024【英文标题】:No of `columns` in pandas DataFrame limited to 1024 【发布时间】:2016-02-16 06:22:07 【问题描述】:

我有一个 15 行 1445 列(24*60 +5 列)的 Excel 表。 1440列(24*60)列包含的数据为时序数据。

我有以下 python 代码。

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
from matplotlib.backends.backend_pdf import PdfPages

a=pd.read_csv('test.csv')
print('a.size '.format(len(a.axes[0])))
print('a.size '.format(len(a.axes[1])))
for x in a.iterrows():
    x[1][4:].plot(label=str(x[1][0])+str(x[1][1])+str(x[1][2])+str(x[1][3]))

我得到以下输出。

a.size 15
a.size 1024

由于某种原因,列数被截断为 1024。这是我正在运行的机器的限制吗?或者是别的什么?如何绕过这个限制。

【问题讨论】:

为了它的价值,我制作了一个包含很多列的 csv 并得到了这个:print('chart1.size '.format(len(chart1.axes[1])))chart1.size 1619。我在一台新的 64 位笔记本电脑上...... @snd - 我系统上的奇怪的东西似乎在限制它。很多列是指 1619 还是更多? 哦,是的,我的意思是 1619 列。刚刚使它成为一个偶数 2000,输出这个:chart1.size 2000 【参考方案1】:

某些电子表格查看器可能会限制查看的列数。例如,我有一个包含 4097 列的 CSV 文件,当使用 LibreOffice 查看时,它只有 1024 列。

但是,CSV 文件通常包含所有列。要确保导出的 CSV 文件具有正确的列数,请在任何文本编辑器中打开它。如果不匹配,则导出 CSV 的代码有问题。

【讨论】:

以上是关于pandas DataFrame 中的“列”数量限制为 1024的主要内容,如果未能解决你的问题,请参考以下文章

Pandas DataFrame groupby,跨列计数和求和

将 Pandas DataFrame 中的列组合到 DataFrame 中的列表列

pandas将dataframe数据列中的年月日列组合成单一的日期数据列实战

pandas筛选dataframe数据中指定数据列的内容包含在指定列表中的所有数据列

pandas使用dataframe中的两列时间对象数据列作差生成时间差数据列(timedelta column)

pandas使用dataframe中的两列时间对象数据列作差生成时间差数据列筛选dataframe数据中时间差(timedelta对象)大于指定阈值的数据行