首页 > 解决方案 > Pandas Concat 添加空单元格/列

问题描述

我有两个看起来像这样的熊猫数据框。标头是指示性的 - 数据框实际上没有任何标头(标题)。

**Dataframe 1**
Browser_name          Count
IE                      4
Chrome                  7
Firefox                 6
DDG                     2

**Dataframe 2**
Browser_name          Count
IE                      6
Chrome                  18
Firefox                 9
DDG                     4

我想要的输出是一个数据框,第一列中包含浏览器名称,第二列中包含它们的计数总和,如下所示。

**Final_Dataframe**
Browser_name          Count
IE                      10
Chrome                  25
Firefox                 15
DDG                     6

我尝试使用两个数据帧的 concat ,然后计划使用 pivot 但我被困在 concat 本身。它为每一行添加空列,因此无法继续下一步。

所有帮助表示赞赏。

标签: pythonpandasdataframe

解决方案


如果有 2 列 DataFrame 解决方案是按第一列创建索引,Series然后按位置创建索引,然后使用Series.add,最后Series.reset_index

s1 = df1.set_index(df1.columns[0]).iloc[:, 0]
s2 = df2.set_index(df2.columns[0]).iloc[:, 0]

df = s1.add(s2).reset_index()
df.columns = ['Browser_name','Count']

或者先设置列名:

df1.columns = ['Browser_name','Count']
df2.columns = ['Browser_name','Count']
s1 = df1.set_index('Browser_name')['Count']
s2 = df2.set_index('Browser_name')['Count']

df = s1.add(s2).reset_index()

print (df)
  Browser_name  Count
0           IE     10
1       Chrome     25
2      Firefox     15
3          DDG      6

如果输入是Series

print (type(df1))
<class 'pandas.core.series.Series'>
print (type(df2))
<class 'pandas.core.series.Series'>

df = df1.add(df2).reset_index()
df.columns = ['Browser_name','Count']
print (df)
  Browser_name  Count
0           IE     10
1       Chrome     25
2      Firefox     15
3          DDG      6

推荐阅读