python - 如何在 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
解决方案
推荐阅读
- flutter - 在flutter web中从服务器获取文件的最佳方法是什么?
- javascript - 为什么设置 url.search 和 url.searchParams.set 会产生不同的值?
- javascript - 用于 NodeJs API 调用的 URL 中的单引号
- excel - 更新单元格时运行 VBA 宏 - 不是由用户或其他宏
- node.js - .cache() 不是函数 Mongoose
- c# - 尽管不支持'await'关键字,如何使此方法异步
- tensorflow - Keras ReduceLROnPlateau - 如何检查它是否已应用
- python - 从 Python 发送的电子邮件没有显示附件,即使它们在那里
- jwt - 通过 JWT 验证 Grafana
- asp.net-core - 覆盖默认的 asp.net 核心取消令牌或更改请求的默认超时