python - 组合两个数据帧时保留索引

标签 python pandas dataframe concatenation

问题 当我合并两个数据框时,我丢失了行名。我想避免这种情况。请注意,数据框中的某些行具有不同的名称。

我尝试过 Pandas 的不同版本的“合并”,但没有成功。

代码示例:

df1 = pd.DataFrame()
series1 = pd.Series([1,2])
series1 .rename(index={0:'zero',1:'one'}, inplace=True)
df1['someValue'] = series1
df1['time'] = "day1"
df1

      someValue  time
zero          1  day1
one           2  day1

df2 = pd.DataFrame()
series2 = pd.Series([3,4,5])
series2 .rename(index={0:'zero',1:'one', 2:'two'}, inplace=True)
df2['someValue'] = series2
df2['time'] = "day2"
df2

      someValue  time
zero          3  day2
one           4  day2
two           5  day2

df1.merge(df2,  how='outer')
   someValue  time
0          1  day1
1          2  day1
2          3  day2
3          4  day2
4          5  day2

我要

   someValue  time
zero       1  day1
one        2  day1
zero       3  day2
one        4  day2
two        5  day2

另请注意,当第一个 df 中存在第二个 df 中没有的行时,我希望此方法能够工作,反之亦然。

最佳答案

解决方案是使用concat:

pd.concat([df1, df2])

      someValue  time
zero          1  day1
one           2  day1
zero          3  day2
one           4  day2
two           5  day2

关于python - 组合两个数据帧时保留索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55412261/

相关文章:

python - 如何从直方图中获取 K 个最大值?

python - 如何向 matplotlib 注释添加附加文本

python - 带有 X、Y 数据的 Matplotlib 热图

r - 通过传递带有要选择的列名的有序向量对 dplyr 中的列进行动态排序

Python Hadoop 流错误 "ERROR streaming.StreamJob: Job not Successful!"和堆栈跟踪 : ExitCodeException exitCode=134

python csv复制列

dataframe - 在 Julia 中每组合并具有 NaN 的行

r - R中的多个条件过滤

python - 分割线索引

python - 将日期时间列更改为无循环的整数