【问题标题】:Creating dataframe from another dataframe and list从另一个数据框和列表创建数据框
【发布时间】:2019-03-19 00:02:36
【问题描述】:

我有一个这样的名字列表

names= [Josh,Jon,Adam,Barsa,Fekse,Bravo,Talyo,Zidane]

我有一个这样的数据框

    Number  Names  
0   1       Josh   
1   2       Jon    
2   3       Adam   
3   4       Barsa  
4   5       Fekse  
5   6       Barsa  
6   7       Barsa 
7   8       Talyo  
8   9       Jon  
9   10      Zidane

我想创建一个数据框,它将名称列表中的所有名称和该数据框中的相应数字分组,对于没有相应数字的名称,应该有一个如下所示的星号

Names Number
Josh  1
Jon   2,9
Adam  3
Barsa 4,6,7
Fekse 5
Bravo *
Talyo 8
Zidane 10

我们是否有任何内置函数来完成这项工作

【问题讨论】:

    标签: python pandas dataframe indexing pandas-groupby


    【解决方案1】:

    您可以将GroupBystr.join 一起使用,然后将reindex 与您的names 列表一起使用:

    res = df.groupby('Names')['Number'].apply(lambda x: ','.join(map(str, x))).to_frame()\
            .reindex(names).fillna('*').reset_index()
    
    print(res)
    
        Names Number
    0    Josh      1
    1     Jon    2,9
    2    Adam      3
    3   Barsa  4,6,7
    4   Fekse      5
    5   Bravo      *
    6   Talyo      8
    7  Zidane     10
    

    【讨论】:

    • 某些名称的数字列将有多个数字,那么这是一个列表吗?我怎样才能将其转换为字符串
    • @foret,这里的数字列将是一个逗号分隔的字符串(或'*')。
    • 实际上我得到了列表形式的数字 [4,6,7] [1] 等等
    • @foret,您是否按照我的解决方案使用lambda x: ','.join(map(str, x))
    • 哎呀,我现在才注意到..让我试试
    猜你喜欢
    • 1970-01-01
    • 2018-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多