麻烦通过转置的标题合并两个熊猫数据帧

时间:2019-08-16 18:51:44

标签: python pandas dataframe dictionary

我无法将两个熊猫数据帧合并在一起。我有两个字典,将它们转换成数据帧并进行转置,并且我想基于第一行标题合并两个数据帧。

我有两个字典

dict1 = defaultdict(list,
            {'a': [1.9,2.0,2.0],
             'b': [3.9,3.6,2.4]}

dict2 = defaultdict(list,
            {'a': '3.3',
             'a': '3.6'})
df2 = pd.DataFrame(dict2).transpose()

给予

     0
a   3.3
b   3.6

然后我制作了第二个datframe:

df = pd.DataFrame(dict2)
#add in some other data
df.loc['mean'] = df.mean()
df.loc['SEM'] = df.sem()
df = df.transpose()
df.columns = ['t1', 't2', 't3', 'mean', 'sem']

这给出了类似的内容:

    t1      t2      t3      mean    sem
a   1.9     2.0     2.0     2.0     0.02
b   3.9     3.6     2.4     3.3     0.34

我想在其他字典/数据框中添加内容,以便得到类似的内容:

    t1    t2     t3      mean    sem     NEW_COLUMN
a   1.9   2.0    2.0     2.0     0.02    3.3
b   3.9   3.6    2.4     3.3     0.34    3.6

1 个答案:

答案 0 :(得分:2)

您可以像这样简单地设置df的新列;

df['NEW_COLUMN'] = pd.DataFrame(dict2).transpose()

在您的OP中修正了两个输入错误,下面是工作代码;

dict1 = defaultdict(list,
            {'a': [1.9,2.0,2.0],
             'b': [3.9,3.6,2.4]})

dict2 = defaultdict(list,
            {'a': [3.3],
             'b': [3.6]})

df = pd.DataFrame(dict1)
#add in some other data
df.loc['mean'] = df.mean()
df.loc['SEM'] = df.sem()
df = df.transpose()
df.columns = ['t1', 't2', 't3', 'mean', 'sem']

df['NEW_COLUMN'] = pd.DataFrame(dict2).transpose()

此外,我建议您在上传帖子之前先进行搜索。像您一样存在大量的问答环节。