我有一个熊猫数据框。我想按升序打印其列之一的唯一值。这就是我的做法:
import pandas as pd
df = pd.DataFrame({'A':[1,1,3,2,6,2,8]})
a = df['A'].unique()
print a.sort()
问题是我得到了None
输出。
Answers:
sorted
从iterable中返回一个新的排序列表。
码
import pandas as pd
df = pd.DataFrame({'A':[1,1,3,2,6,2,8]})
a = df['A'].unique()
print sorted(a)
输出值
[1, 2, 3, 6, 8]
您也可以使用drop_duplicates()代替unique()
df = pd.DataFrame({'A':[1,1,3,2,6,2,8]})
a = df['A'].drop_duplicates()
a.sort()
print a
drop_duplicates()
在14107693行[Pandas 0.18]的数据帧上发现其比unique()快3倍
另一种方法是使用设置数据类型。
集合的一些特征:集合是无序的,可以包含混合数据类型,集合中的元素不能重复,是可变的。
解决您的问题:
df = pd.DataFrame({'A':[1,1,3,2,6,2,8]})
sorted(set(df.A))
列表类型的答案:
[1, 2, 3, 6, 8]
a.sort()
修改a
且不返回任何内容,因此请替换为:a.sort(); print a