【问题标题】:How to merge all columns in a DataFrame except the first into one column and drop empty rows? Python如何将 DataFrame 中除第一列之外的所有列合并为一列并删除空行? Python
【发布时间】:2018-07-05 19:49:19
【问题描述】:

我有一个包含多列的大型数据框,并且想要将除第一列之外的所有列中的所有值合并到一个新列中 ('New')。然后删除 'New' 为空的行。

DataFrame 看起来像这样('C' 行是空的):

    'Column1'  'Column2'  'Column3'  'Column4'  'Column5'  ...
0    A          a
1    B                     b
2    C
3    D          d
4    E                                e
5    F                                           f
6    G                     g
7    H                                h
...

我要找的结果是这样的:

    'Column1'  'New'
0    A          a
1    B          b
2    D          d
3    E          e
4    F          f
5    G          g
6    H          h
...

所以第一列保持原样,所有其他列合并到列'New'。由于行 C 不包含任何值,因此将其从最终的 DataFrame 中删除。

实现这一目标的最有效方法是什么?

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    您可以使用sum

    df['New']=df.iloc[:,1:].sum(1)
    

    【讨论】:

    • 谢谢。但是当我这样做时, df['New'] 只包含零: 0 0.0 1 0.0 2 0.0 3 0.0 4 0.0 5 0.0 6 0.0 7 0.0
    【解决方案2】:

    试试这个,

    df['New'] = df.loc[:,1:].sum(1)
    df1 = df[['column1','New']]
    print df1[df1.New != '']
    

    【讨论】:

    • 感谢您的来信。我会相应地更新答案。
    猜你喜欢
    • 2021-07-25
    • 2018-02-01
    • 1970-01-01
    • 2021-09-08
    • 2012-12-03
    • 2018-06-04
    • 1970-01-01
    • 1970-01-01
    • 2020-03-11
    相关资源
    最近更新 更多