Python 基于客户端在dataframe中排序列
我的数据框中有一些列(之前已合并),例如:Python 基于客户端在dataframe中排序列,python,sorting,dataframe,merge,Python,Sorting,Dataframe,Merge,我的数据框中有一些列(之前已合并),例如: client\u 10,visit\u 10,client\u 11,visit\u 11 我需要对以下列进行排序: client_1,visit_1,client_2,visit_2 在每次代码运行中,我可能有不同数量的客户端,因此没有固定的端点 对我的列进行排序的最佳方法是什么?尝试以下方法: df = df[sorted(list(df.columns), key=lambda n: (int(n.split('_')[1]), n.split(
client\u 10
,visit\u 10
,client\u 11
,visit\u 11
我需要对以下列进行排序:
client_1
,visit_1
,client_2
,visit_2
在每次代码运行中,我可能有不同数量的客户端,因此没有固定的端点
对我的列进行排序的最佳方法是什么?尝试以下方法:
df = df[sorted(list(df.columns), key=lambda n: (int(n.split('_')[1]), n.split('_')[0]))]
是列的列表list(df.columns)
根据编号对它们进行排序,然后排序(…)
,客户端
访问
- 在结果上获取
,并将其分配给df[…]
df
df = df[sorted(list(df.columns), key=lambda n: (int(n.split('_')[1]), n.split('_')[0]))]
是列的列表list(df.columns)
根据编号对它们进行排序,然后排序(…)
,客户端
访问
- 在结果上获取
,并将其分配给df[…]
df
- 以上由@提供的答案更好。。
这又是一次尝试
ls = ['client_2','visit_3', 'client_1', 'visit_2', 'client_3', 'visit_1']
ls = sorted(list(ls), key=lambda n: (n.split('_')[0], int(n.split('_')[1])))
mid = (len(ls)//2)
print([item for sublist in list(zip(ls[:mid], ls[mid:])) for item in sublist])
>>>['client_1', 'visit_1', 'client_2', 'visit_2', 'client_3', 'visit_3']
以上由@提供的答案更好。。 这又是一次尝试
ls = ['client_2','visit_3', 'client_1', 'visit_2', 'client_3', 'visit_1']
ls = sorted(list(ls), key=lambda n: (n.split('_')[0], int(n.split('_')[1])))
mid = (len(ls)//2)
print([item for sublist in list(zip(ls[:mid], ls[mid:])) for item in sublist])
>>>['client_1', 'visit_1', 'client_2', 'visit_2', 'client_3', 'visit_3']
他是客户,一个接一个地来访。。这对他想要的输出有用吗?@YatishKadam谢谢你的评论!UpdatedI在添加时具有“invalid literal for int(),基数为10:“STATUS”。你能告诉我吗?@Narg你可能有一个类似
client\u STATUS
或visit\u STATUS
的专栏。在这种情况下,你希望发生什么?谢谢你,阿美,我编写了你的代码,这很有帮助。他是客户,一个接一个地来访。。这对他想要的输出有用吗?@YatishKadam谢谢你的评论!UpdatedI在添加时具有“invalid literal for int(),基数为10:“STATUS”。你能告诉我吗?@Narg你可能有一个类似client\u STATUS
或visit\u STATUS
的专栏。在这种情况下,您希望发生什么?谢谢您,Ami,我编写了您的代码,这很有帮助。我添加了“invalid literal for int(),以10为基数:“STATUS”。你能告诉我吗?当我添加时,我有一个以10为基数的int()无效文本:“STATUS”。你能给个建议吗?