首页 > 解决方案 > 如何在 Pandas Python 上设置多列?

问题描述

我想在 CSV 文件中插入一百多列。但似乎熊猫库的列有限。

这是错误消息:

Traceback (most recent call last):
  File "metric.py", line 91, in <module>
    finalFile(sys.argv[1])
  File "metric.py", line 80, in finalFile
    data = pd.read_csv(f, header=None, dtype=str)
  File "/usr/local/lib/python3.6/dist-packages/pandas/io/parsers.py", line 688, in read_csv
    return _read(filepath_or_buffer, kwds)
  File "/usr/local/lib/python3.6/dist-packages/pandas/io/parsers.py", line 454, in _read
    parser = TextFileReader(fp_or_buf, **kwds)
  File "/usr/local/lib/python3.6/dist-packages/pandas/io/parsers.py", line 948, in __init__
    self._make_engine(self.engine)
  File "/usr/local/lib/python3.6/dist-packages/pandas/io/parsers.py", line 1180, in _make_engine
    self._engine = CParserWrapper(self.f, **self.options)
  File "/usr/local/lib/python3.6/dist-packages/pandas/io/parsers.py", line 2010, in __init__
    self._reader = parsers.TextReader(src, **kwds)
  File "pandas/_libs/parsers.pyx", line 540, in pandas._libs.parsers.TextReader.__cinit__
pandas.errors.EmptyDataError: No columns to parse from file

以下是我的功能:

def finalFile(fname):

    output = pd.DataFrame()

    for file_name in os.listdir('test/sciprt-temp/'):
        if file_name.startswith(fname):
            with open(os.path.join('test/sciprt-temp/', file_name)) as f:
                data = pd.read_csv(f, header=None, dtype=str)
                output[file_name.rsplit('.', 4)[2]] = data[1]

    output.insert(0, 'timestamp', dt.datetime.now().timestamp())
    output.insert(0, 'hostname', fname.rsplit('-', 3)[0])
    output.set_index(output.columns[0], inplace=True)
    output.to_csv(fname.rsplit('.', 2)[2] + ".csv")



finalFile(sys.argv[1])

插入几列但不使用更多列时,它似乎工作正常。

hostname,timestamp,-diskstats_latency-sda-avgrdwait-g,-diskstats_latency-sda-avgwait-g,-diskstats_latency-sda-avgwrwait-g,-diskstats_latency-sda-svctm-g,-diskstats_latency-sda_avgwait-g
test.test.com,1617779170.62498,2.7979746835e-03,6.6681051841e-03,7.1533659185e-03,2.5977601795e-04,6.6681051841e-03

标签: pythonpandas

解决方案


推荐阅读