我正在将许多csv文件连接在一起,并希望从多列csv中获取一列,并将其作为新列附加到第二个csv中。问题是,列的行数不同,所以一旦达到现有csv中的行索引,我添加到现有csv中的新列就会被缩短。
我尝试将新列作为第二个dataframe读入,然后将该dataframe作为新列添加到现有csv。
df = pd.read_csv("Existing CSV.csv")
df2 = pd.read_csv("New CSV.csv", usecols = ['Desired Column'])
df["New CSV"] = df2
"Existing CSV“有1200行数据,而"New CSV”有1500行。当我运行代码时,“New CSV”列被添加到"Existing CSV“列,但是,只包含前1200行数据。
理想情况下,将包含"New CSV“中的所有1500行,而"Existing CSV”中缺少的300行将保留为空。
发布于 2019-06-26 08:37:24
默认情况下,read_csv
为生成的DataFrame提供一个整数索引,因此我可以考虑几个选项来尝试。
设置
df = pd.read_csv("Existing CSV.csv")
df2 = pd.read_csv("New CSV.csv", usecols = ['Desired Column'])
方法1:join
df = df.join(df2['Desired Column'], how='right')
方法2:reindex_like
和assign
df = df.reindex_like(df2).assign(**{'Desired Column': df2['Desired Column']})
https://stackoverflow.com/questions/56763245
复制相似问题