【问题标题】:Separate String from and create a dataframe column [duplicate]从字符串中分离并创建一个数据框列[重复]
【发布时间】:2019-07-03 03:09:02
【问题描述】:

我正在解决以下问题:

df_temp = pd.DataFrame() 
df_temp.insert(0, 'Label', ["A|B|C","A|C","C|B","A","B"])  
df_temp.insert(1, 'ID', [1,2,3,4,5])  
df_temp 

    Label   ID
0   A|B|C   1
1   A|C     2
2   C|B     3
3   A       4
4   B       5 

我想将此数据框转换为类似下面的数据框,我可以在其中分隔 ID 列的标签。

预期输出:

   ID  Label
    1  A
    1  B
    1  C
    2  A
    2  C
    3  C
    3  B
    4  A
    5  B

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    试试这个:

    (df_temp.set_index('ID')['Label']
            .str.split('|', expand=True)
            .reset_index()
            .melt('ID')
            .drop('variable', axis=1)
            .dropna()
            .sort_values('ID'))
    

    输出:

        ID value
    0    1     A
    5    1     B
    10   1     C
    1    2     A
    6    2     C
    2    3     C
    7    3     B
    3    4     A
    4    5     B
    

    【讨论】:

    • 进行了外观更改,如果您不满意,请回滚 :)
    猜你喜欢
    • 2017-05-05
    • 1970-01-01
    • 2021-09-21
    • 1970-01-01
    • 1970-01-01
    • 2016-12-23
    • 1970-01-01
    • 1970-01-01
    • 2023-01-12
    相关资源
    最近更新 更多