我正在将多个csv文件连接在一起,并希望从多列csv中提取一列,并将其作为新列附加到第二个csv中。问题在于列的行数不同,因此一旦达到现有csv的行索引,我要添加到现有csv的新列就会被缩短。
我试图读取新列作为第二个数据框,然后将该数据框作为新列添加到现有的csv中。
df = pd.read_csv("Existing CSV.csv")
df2 = pd.read_csv("New CSV.csv", usecols = ['Desired Column'])
df["New CSV"] = df2
“现有CSV”具有1200行数据,而“新CSV”具有1500行。当我运行代码时,“新CSV”列将添加到“现有CSV”中,但是,仅包括前1200行数据。
理想情况下,“新CSV”中的所有1500行将被包括在内,“现有CSV”中缺少的300行将留为空白。
答案 0 :(得分:0)
默认情况下,read_csv
为所得的DataFrame提供一个整数索引,因此我可以考虑尝试几个选项。
df = pd.read_csv("Existing CSV.csv")
df2 = pd.read_csv("New CSV.csv", usecols = ['Desired Column'])
join
df = df.join(df2['Desired Column'], how='right')
reindex_like
和assign
df = df.reindex_like(df2).assign(**{'Desired Column': df2['Desired Column']})