用熊猫修改数据框

时间:2020-07-10 15:06:40

标签: python pandas csv

我有一个如下的输入csv文件

enter image description here

输出应该是这样的

enter image description here

如何使用熊猫来实现这一目标?

2 个答案:

答案 0 :(得分:1)

尝试此操作,pandas.melt将给定的DataFrame从宽格式转换为长格式,groupBy.apply将其合并为值。

import pandas as pd

(
    pd.melt(df, id_vars="column_1",
            value_vars=['column_2', 'column_3'], value_name='column_2')
        .astype(str)
        .groupby("column_1")['column_2']
        .apply(lambda x: "|".join(x)).reset_index()
)

答案 1 :(得分:1)

我将DataFrame.meltgroupby.aggas_index=False一起使用

new_df = (df.assign(**df[['column2', 'column3']].astype(str))
            .melt('column1', 
                  value_vars=['column_2', 'column_3'], 
                  value_name='column_2')
            .groupby("column_1", as_index=False)[['column_2']]
            .agg( "|".join))

DataFrame.assign用于通过仅选择第2列和第3列来将列的类型动态更改为字符串。

如果column1在某些时候不是字符串

,则可能有必要