python数据框在计数器字段上循环
我想构建一个循环,该函数将在“计数器”字段上循环创建子集数据框架,然后将它们重新加入
以下是我想要的一个示例,实际上,计数器可以在数百个:
data = {'name': ['Adam','Adam','Adam','Adam', 'nick','nick','nick','nick','nick','krish','krish','krish',],
'age': [20,20,20,20, 21,21,21,21,21, 19,19,19],
'Product': ['A','B','C','D','A','B','C','D','E','A','B','C'],
'Counter': [1,2,3,4,1,2,3,4,5,1,2,3]}
# Create DataFrame
df = pd.DataFrame(data)
df1 = df.loc[df['Counter'] == 1]
df1 = df1[['name','age','Product']]
df2 = df.loc[df['Counter'] == 2]
df2 = df2[['name','age','Product']]
df3 = df.loc[df['Counter'] == 3]
df3 = df3[['name','age','Product']]
df4 = df.loc[df['Counter'] == 4]
df4 = df4[['name','age','Product']]
df5 = df.loc[df['Counter'] == 5]
df5 = df5[['name','age','Product']]
dfs = [df1,df2,df3,df4,df5]
from functools import reduce
df_merged = reduce(lambda left,right: pd.merge(left,right,on=['name'], how='outer'), dfs)
I would like to build a loop where the function will loop over the "counter" field creating subset dataframes and then join them back together
The below is a small example of what i want, in reality the counters can be in the hundreds:
data = {'name': ['Adam','Adam','Adam','Adam', 'nick','nick','nick','nick','nick','krish','krish','krish',],
'age': [20,20,20,20, 21,21,21,21,21, 19,19,19],
'Product': ['A','B','C','D','A','B','C','D','E','A','B','C'],
'Counter': [1,2,3,4,1,2,3,4,5,1,2,3]}
# Create DataFrame
df = pd.DataFrame(data)
df1 = df.loc[df['Counter'] == 1]
df1 = df1[['name','age','Product']]
df2 = df.loc[df['Counter'] == 2]
df2 = df2[['name','age','Product']]
df3 = df.loc[df['Counter'] == 3]
df3 = df3[['name','age','Product']]
df4 = df.loc[df['Counter'] == 4]
df4 = df4[['name','age','Product']]
df5 = df.loc[df['Counter'] == 5]
df5 = df5[['name','age','Product']]
dfs = [df1,df2,df3,df4,df5]
from functools import reduce
df_merged = reduce(lambda left,right: pd.merge(left,right,on=['name'], how='outer'), dfs)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我相信您要寻找的名为 df.pivot :
打印:
I believe what you looking for is called
df.pivot
:Prints: