我正在使用一些代码来合并两个 csv,并按两列对它们进行排序。输出一个新的 csv。输入的 csv 具有相同的名称,只是编号为 1 和 2。我正在为多组数据重复此代码。我想知道使代码输出包含原始文件名第一部分的文件名的方法是什么。
我当前的代码:
import pandas as pd
df1 = pd.read_csv("data csv 1\September 2013 1 UUedit1.csv", delimiter = ",")
df2 = pd.read_csv("data csv 1\September 2013 2 UUedit2.csv", delimiter = ",")
merged = df1.merge(df2, on="Unique Element")
delcols = "Element_y", "number_y", "date_y", "title_y", "name_y"
for delcol in delcols:
del merged[delcol]
merged.rename(columns={"name_x": "name", "rdate_x": "date", "title_x": "title", "number_x": "number", "Element_x": "Element"}, inplace = True)
merged = merged.sort("Element").reset_index(drop=True)
merged = merged.sort("date").reset_index(drop=True)
merged.to_csv("MRG.csv", index=False, sep = ",")
所以在这个例子中,两个输入文件都被称为September 2013
“数字”“UUedit”我想让我的代码直接输出文件名,因为September 2013 MRG.csv
如何编码?为了澄清这两个原始文件是否是October 2013
那么输出将是October 2013 MRG.csv
非常感谢 GTPE
编辑
运行 Christian Ternus 提供的代码后,我收到以下打印和回溯:
Usage: C:/Test.py <month> <year>
Traceback (most recent call last):
File "C:/Test.py", line 7, in <module>
month, year = sys.argv[1:]
ValueError: need more than 0 values to unpack
我不确定第二个变量应该设置为什么。
非常感谢
GTPE
编辑 2
我设法通过调用它 CMD 来让代码工作,但是我尝试通过 python 调用脚本似乎没有奏效。我尝试了以下方法:
import subprocess
p = subprocess.Popen(['python', 'RawDataSheetMergerPandasTest.py September 2013'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = p.communicate()
print out