排序键:值对wrt值

时间:2019-08-21 11:08:57

标签: python key-value

我正在加载的Excel测试中的一列看起来像这样:

Apple:3, Mango:2, Orange:2, Fig:5, Berry:1, Cherry:99

这在单列中。

我正在尝试使用python。

一排中有100行包含这样的记录。

我正在尝试将其分为不同的列。我试图拆分“,”。我只是无法用任何方法解决问题

现在我想要这样的输出

Cherry:99,Fig:5,Apple:3,Mango:2,Orange:2,Berry:1

3 个答案:

答案 0 :(得分:1)

使用正则表达式和sorted

例如:

import re
data = "Apple:3, Mango:2, Orange:2, Fig:5, Berry:1, Cherry:99"
print(", ".join(sorted(data.split(", "), key=lambda x: int(re.search(r"(\d+)", x).group(1)), reverse=True)))

输出:

Cherry:99, Fig:5, Apple:3, Mango:2, Orange:2, Berry:1
  • int(re.search(r"(\d+)", x).group(1))在字符串中查找整数。

对于熊猫DF

例如:

import re
import pandas as pd

df = pd.DataFrame({"data": ["Apple:3, Mango:2, Orange:2, Fig:5, Berry:1, Cherry:99"]})
df["data"] = df["data"].apply(lambda z: ", ".join(sorted(z.split(", "), key=lambda x: int(re.search(r"(\d+)", x).group(1)), reverse=True)))
print(df)

答案 1 :(得分:0)

  

Python sorted()

     

sorted()方法从给定的可迭代对象返回一个排序列表。

Syntax : sorted(iterable, key, reverse)
     

Parameters:排序使用三个参数,其中两个是   

     

可迭代:序列(列表,元组,字符串)或集合(字典,   set,frozenset)或任何其他需要排序的迭代器。

     

Key(可选):一种功能,可以作为密钥或基础   排序比较。

     

Reverse(可选):如果设置为true,则可迭代   将以反向(降序)排序,默认情况下将其设置为   错误。

data = {'Apple':3, 'Mango':2, 'Orange':2, 'Fig':5, 'Berry':1, 'Cherry':99}
sorted_data = sorted(data.items(), key=lambda kv: kv[1], reverse=True)
print (dict(sorted_data))

输出:

{'Cherry': 99, 'Fig': 5, 'Apple': 3, 'Mango': 2, 'Orange': 2, 'Berry': 1}

答案 2 :(得分:0)

<div *ngFor="let item of number | filter ; let i = index" style="border: 1px solid;margin-bottom:20px">
<div *ngFor="let item of item; let j = index" style="">
  element {{i}} , {{j}}
</div>
</div>
相关问题