我有一个熊猫数据框架。我想按升序打印其中一列的唯一值。我是这样做的:
import pandas as pd
df = pd.DataFrame({'A':[1,1,3,2,6,2,8]})
a = df['A'].unique()
print a.sort()
问题是我得到的输出是None。
我有一个熊猫数据框架。我想按升序打印其中一列的唯一值。我是这样做的:
import pandas as pd
df = pd.DataFrame({'A':[1,1,3,2,6,2,8]})
a = df['A'].unique()
print a.sort()
问题是我得到的输出是None。
当前回答
另一种方法是使用集合数据类型。
集合的一些特征:集合是无序的,可以包括混合数据类型,集合中的元素不能重复,是可变的。
解决你的问题:
df = pd.DataFrame({'A':[1,1,3,2,6,2,8]})
sorted(set(df.A))
列表类型中的答案:
[1, 2, 3, 6, 8]
其他回答
最快的代码
对于大数据帧:
df['A'].drop_duplicates().sort_values()
Sort在原地排序,因此不返回任何内容:
In [54]:
df = pd.DataFrame({'A':[1,1,3,2,6,2,8]})
a = df['A'].unique()
a.sort()
a
Out[54]:
array([1, 2, 3, 6, 8], dtype=int64)
所以你必须在调用排序之后再次调用print a。
Eg.:
In [55]:
df = pd.DataFrame({'A':[1,1,3,2,6,2,8]})
a = df['A'].unique()
a.sort()
print(a)
[1 2 3 6 8]
sorted(iterable):从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_duplicate()而不是unique()
df = pd.DataFrame({'A':[1,1,3,2,6,2,8]})
a = df['A'].drop_duplicates()
a.sort()
print a
我更喜欢在线电话:
print(sorted(df['Column Name'].unique()))