合并系列和DataFrame

时间:2019-04-29 22:36:26

标签: python python-3.x pandas

我想合并一个索引,该索引与数据框列相同。

我已经尝试过pd.concat了,但这没用。

我想要

samp_series = pd.Series([1,2], index=['a', 'b'])
samp_df = pd.DataFrame({'a': [3,4], 'b': [5,6]})


want = pd.DataFrame({'a': [1, 3, 4], 'b': [2, 5, 6]})

我尝试过:

pd.concat([samp_series, samp_df], axis=0)

我想要“想要的”数据框。

2 个答案:

答案 0 :(得分:2)

您可以将Series转换为pandas DataFrame,然后将transpose的索引转换为列。最后,您可以合并以下两个数据帧:

want = pd.concat([pd.DataFrame(samp_series).T, samp_df], ignore_index=True)

print(want)
   a  b
0  1  2
1  3  5
2  4  6

答案 1 :(得分:1)

通常,您可以使用appendSeries(或listdict或…)中添加一行到现有的DataFrame中。所以

samp_df.append(samp_series, ignore_index=True)

应该像魅力一样工作。

但是,您似乎愿意反其道而行,将Series放在DataFrame之前。在这种情况下,您将不得不稍微调整一下数据并将Series转换为DataFrame,以便其他功能可以正常工作:

samp_almost_series = pd.DataFrame(samp_series).T
wanted = samp_almost_series.append(samp_df)

如果您不想使用中间的DataFrame,则最后一个解决方案是在{{1}中的任何现有索引之前,通过Series操作将loc“插入” } sorting itreseting it之前:

samp_df

但是此解决方案成本更高,如果索引尚未排序,则会更改您的输出。