熊猫用字符串和整数加和行

时间:2018-07-15 11:21:24

标签: python python-3.x pandas

对于Pandas数据框

df

Language    # of Files  Blank Lines Comment Lines   Code Lines
C++            15             66       35                 354
C/C++ Header    1              3       7                   4
Markdown        6              73      0                  142
Python          110          1998     2086                4982
Tcl/Tk          1            14        18                 273
YAML            1             0         6                  20

当我使用下面的代码时,它会将非整数的每一列加NAN

df = df.append(df.sum(numeric_only=True), ignore_index=True)

输出

Language    # of Files  Blank Lines Comment Lines   Code Lines
C++            15             66       35                 354
C/C++ Header    1              3       7                   4
Markdown        6              73      0                  142
Python          110          1998     2086                4982
Tcl/Tk          1            14        18                 273
YAML            1             0         6                  20
NAN             134           2154     2152               5775

我应该在代码中进行哪些更改以添加字符串“ Total”而不是NAN

Language    # of Files  Blank Lines Comment Lines   Code Lines
C++            15             66       35                 354
C/C++ Header    1              3       7                   4
Markdown        6              73      0                  142
Python          110          1998     2086                4982
Tcl/Tk          1            14        18                 273
YAML            1             0         6                  20
TOTAL           134           2154     2152               5775

2 个答案:

答案 0 :(得分:2)

您可以

In [268]: total = df.sum()

In [269]: total['Language'] = 'Total'

In [270]: df.append(total, ignore_index=True)
Out[270]:
       Language  # of Files  Blank Lines  Comment Lines  Code Lines
0           C++          15           66             35         354
1  C/C++ Header           1            3              7           4
2      Markdown           6           73              0         142
3        Python         110         1998           2086        4982
4        Tcl/Tk           1           14             18         273
5          YAML           1            0              6          20
6         Total         134         2154           2152        5775

答案 1 :(得分:1)

这是另一个版本:

df.loc[len(df)] = np.insert('Total', 1, df.drop('Language', axis=1).sum(0))