python - 如何通过组合 pandas 数据框中的两行来创建列

标签 python pandas dataframe data-analysis

嗨,我有一个这样的 df,

    0     1    2       3
0   A     B    NaN     C
1   D     NaN  E       F
2   one   two  three   four
3   five  six  sev     egght

我正在尝试通过组合 row1 和 row2 为我的 df 创建一个新列,我可以通过添加行并将其替换为列并删除重复的行来做到这一点。但我正在寻找一种可行的方法来做到这一点。

我的预期输出是,

    A D     B    E     C F
0   one   two  three   four
1   five  six  sev     egght

NaN 替换为 ''

最佳答案

您可以通过 iloc 选择前 2 行并将 NaN 替换为 fillna .

然后按空格连接,但需要通过 strip 删除尾随空格:

cols = df.iloc[:2].fillna('')
df.columns = (cols.iloc[0] + ' ' + cols.iloc[1]).str.strip()

df = df.iloc[2:]
print (df)
    A D    B      E    C F
2   one  two  three   four
3  five  six    sev  egght

或者更好地将所有非 NaN 值与 apply 连接起来和 dropna :

df.columns = df.iloc[:2].apply(lambda x: ' '.join(x.dropna()))
df = df.iloc[2:]
print (df)
    A D    B      E    C F
2   one  two  three   four
3  five  six    sev  egght

关于python - 如何通过组合 pandas 数据框中的两行来创建列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51998843/

相关文章:

apache-spark - 如何将行 id 的持久列添加到 Spark DataFrame?

python - 更改 Pandas 数据框中一列中的所有值

python - 将数据限制为所需的值

pandas - 使用 boolean 检查返回数据框中的列名

python - 根据起始字母从数据框中的列中提取值

python - Pandas 更新多索引数据框中的值

python - 如何在 Re-Dash 中编写 python 脚本?

python - memcache.Client 未在 GAE python 上设置缓存值

python - 用相同的行名融合两个数据帧

r - 在 R 中的 data.frame 中选择 n 个最新(按日期)条目的优雅方法是什么?