<p>谢谢<a href="https://stackoverflow.com/questions/38172342/how-to-transfer-the-common-columns-between-two-csv-files">Wboy</a>你的贡献,你的意见真的很有用。你知道吗</p>
<p>我利用熊猫图书馆找到了解决这个问题的办法。代码如下:</p>
<pre><code>import pandas as pd
# read the csv files
df = pd.read_csv('file1.csv')
df2 = pd.read_csv('file2.csv')
# lowercase the headers
df.columns = df.columns.str.lower()
df2.columns = df2.columns.str.lower()
df_columns = set(list(df.columns))
df2_columns = set(list(df2.columns))
</code></pre>
<p><strong>识别并传输“公共”列:</strong></p>
<pre><code>for col in list(df_columns):
for col2 in list(df2_columns):
if col == "subjectprefix" and col2 =="prefix_name":
# copy the data from df["subjectprefix"] column to df2["prefix_name"] column in df2 dataframe
df2["prefix_name"] = df['subjectprefix']
df3 = [col2]
elif col == "subjectfirstname" and col2 =="first_name":
# copy the data from "subjectfirstname" column to "first_name" column
df2["first_name"] = df["subjectfirstname"]
df3.append(col2)
elif col =="subjectlastname" and col2 =="last_name":
#copy the data from "subjectfirstname" column to "last_name" column
df2["last_name"] = df["subjectlastname"]
df3.append(col2)
elif col == col2:
# copy the exactly matching to df2
df2[col2] = df[col]
df3.append(col2)
</code></pre>
<p><strong>从数据帧df2中删除“不常见”列:</strong></p>
<pre><code>for col2 in list(df2_columns):
if not col2 in df3:
del df2[col2]
# print the output
df2.set_index("id",inplace=True)
print df2
</code></pre>
<p><strong>将输出另存为.csv文件:</strong></p>
<pre><code>df2.to_csv('output.csv')
</code></pre>
<p>我相信这不是一个最佳的解决方案,我希望代码可以在识别和传输“公共”列方面得到改进。我的代码中充满了if/elif语句,我确信这里一定有更好的实现方法。你知道吗</p>