我想合并一个索引,该索引与数据框列相同。
我已经尝试过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)
我想要“想要的”数据框。
答案 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)
通常,您可以使用append
从Series
(或list
或dict
或…)中添加一行到现有的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 it和reseting it之前:
samp_df
但是此解决方案成本更高,如果索引尚未排序,则会更改您的输出。