从另一个Datafram创建Dataframe

2024-10-03 17:18:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个如下所示的数据帧

   Index  Batch    Name
    0        1      Jon
    1    
    2        2      Adam
    3         
    4        3      Voges
    5       
    6        4      Jon

我想从这个数据框中创建另一个数据帧,包括批号

^{pr2}$

我该怎么做呢?我应该从现有的数据框中创建一个新的列表或ordereddict,然后将其转换为另一个DF,或者这可以在运行中完成吗。在

更新: 在它们之间用空格编辑


Tags: 数据name编辑df列表indexbatchordereddict
2条回答
In [33]: df['Name/Batches'] = \
             df['Name'] + '(' + \
             df.groupby('Name')['Batch'].transform(lambda x: x.astype(str).str.cat(sep=',')) \
             + ')'

In [34]: df
Out[34]:
   Batch   Name Name/Batches
0      1    Jon     Jon(1,4)
1      2   Adam      Adam(2)
2      3  Voges     Voges(3)
3      4    Jon     Jon(1,4)

下面是一种使用groupby+transform的自定义函数的方法:

def stringer(x):
    return '('+', '.join(map(str, x))+')'

df['Name'] += df.groupby('Name')['Batch'].transform(stringer)

print(df)

   Batch       Name
0      1  Jon(1, 4)
1      2    Adam(2)
2      3   Voges(3)
3      4  Jon(1, 4)

更新空行核算

在这种情况下,可以使用numpy.where

^{pr2}$

相关问题 更多 >