我是python新手,我的代码需要帮助。我正在尝试将多个excel文件中的数据附加到一个文件中。但有些地方出了问题。
import pandas as pd
import argparse
import os
parser = argparse.ArgumentParser(description="extract data from machine")
parser.add_argument("-d","--data", dest="data", required =True, action = "store", type=argparse.FileType("r", encoding="latin-1"), nargs="+",
help="the excel file you want to analysis")
parser.add_argument("-o","--outFileNamePrefix",action="store",default="foo",dest="out",
help="the output file name")
args = parser.parse_args()
output = pd.DataFrame(columns=['Target','Sample','SQ Mean', 'SQ Std. Dev'])
output.to_excel("%s_%s.xlsx"%(args.out), index=False)
filenames = args.data
for filename in filenames:
for line in filename:
data = pd.read_excel(args.data)
data = data.to_excel(os.path.join("%s_%s.xlsx"%(args.out)))
我有这个错误
ValueError: Invalid file path or buffer object type: <class 'list'>
任何建议都将是有帮助的,请!
发布于 2021-12-05 06:46:57
感谢大家的建议!现在它起作用了!
下面是使用命令行参数将多个包含某些数据的excel文件合并到一个文件中的最终工作代码。
import pandas as pd
import argparse
# parse command line args
parser = argparse.ArgumentParser(description="Extract data from machine")
parser.add_argument("-d","--data", dest="data", action = "store", nargs="+",
help="the excel file you want to analysis")
parser.add_argument("-o","--outFileNamePrefix",action="store",default="foo",dest="out",
help="the output file name")
args = parser.parse_args()
"""input data"""
df = pd.DataFrame()
for file in args.data:
data = pd.read_excel(file)
df = df.append(data)
data_final = df.to_excel("%s_%s.xlsx"%(args.out), index=False)
首先,我让args.data
成为一个string
,因为@hpaulj建议我删除--data
FileType
,所以为了让它变得简单。然后,多亏了@joanis,使for file in args.data:
和append
数据循环到空的数据帧。
发布于 2021-12-02 16:14:47
args.data
似乎是一个List
,所以也许可以试试args.data[0]
https://stackoverflow.com/questions/70171461
复制相似问题