python – 从另一个Dataframe创建Dataframe
发布时间:2020-12-20 11:05:44 所属栏目:Python 来源:网络整理
导读:我有一个如下所示的数据框 Index Batch Name 0 1 Jon 1 2 2 Adam 3 4 3 Voges 5 6 4 Jon 我想从这个数据框中创建另一个数据帧,并将批次编号分组 Batch Name/Batches1 Jon(1,4)2 Adam(2)3 Voges(3)4 Jon(1,4) 我怎么能这样做,如果我从现有DF创建一个新列表或o
我有一个如下所示的数据框
Index Batch Name 0 1 Jon 1 2 2 Adam 3 4 3 Voges 5 6 4 Jon 我想从这个数据框中创建另一个数据帧,并将批次编号分组 Batch Name/Batches 1 Jon(1,4) 2 Adam(2) 3 Voges(3) 4 Jon(1,4) 我怎么能这样做,如果我从现有DF创建一个新列表或ordereddict然后将其转换为另一个DF,或者这可以在运行中完成. 更新: 解决方法
这是使用groupby变换和自定义函数的一种方法:
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: import numpy as np def stringer(x): return '('+',map(int,x)))+')' s = df.dropna(subset=['Name']).groupby('Name')['Batch'].apply(stringer) df['Name/Batch'] = np.where(df['Name'].notnull(),df['Name'] + df['Name'].map(s),df['Name']) print(df) Index Batch Name Name/Batch 0 0 1.0 Jon Jon(1,4) 1 1 NaN NaN NaN 2 2 2.0 Adam Adam(2) 3 3 NaN NaN NaN 4 4 3.0 Voges Voges(3) 5 5 NaN NaN NaN 6 6 4.0 Jon Jon(1,4) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容