在数据框中将多行合并为一

时间:2020-08-12 11:38:50

标签: python pandas

我有一个看起来像这样的数据框:

df = 

 |Name     Nationality            Family   etc.....
0|John     Born in Spain.         Wife
1|nan      But live in England    son
2|nan      nan                    daughter

有些列只有一行,而另一些列在几行上有多个答案,我如何将这些行彼此合并,以便看起来像下面这样:

df = 

 |Name          Nationality                             Family              etc....
0|John          Born in Spain. But live in England      Wife Son Daughter

1 个答案:

答案 0 :(得分:1)

也许这将为您做到:

import pandas as pd

# your dataframe
df = pd.DataFrame(
    {'Name':        ['John', np.nan, np.nan],
     'Nationality': ['Born in Spain.', 'But live in England', np.nan],
     'Family':      ['Wife', 'son', 'daughter']})

def squeeze_df(df):
    new_df = {}
    for col in df.columns:
        new_df[col] = [df[col].str.cat(sep=' ')]
    return pd.DataFrame(new_df)

squeeze_df(df)

# >> out: 
#   Name    Nationality                          Family
# 0 John    Born in Spain. But live in England   Wife son daughter

我假设您只需要一个人做一次(即将数据框的行压缩/合并为一行)。另外,“ etc ....”是什么意思?例如,您在数据框中会有整数或浮点值吗?