MAS*_*MAS 50 python sorting unique dataframe pandas
我有一个熊猫数据帧.我想按升序打印其中一列的唯一值.这就是我这样做的方式:
import pandas as pd
df = pd.DataFrame({'A':[1,1,3,2,6,2,8]})
a = df['A'].unique()
print a.sort()
Run Code Online (Sandbox Code Playgroud)
问题是我得到了None
输出.
Vin*_*shi 70
sorted
从iterable中的项返回一个新的排序列表.
码
import pandas as pd
df = pd.DataFrame({'A':[1,1,3,2,6,2,8]})
a = df['A'].unique()
print sorted(a)
Run Code Online (Sandbox Code Playgroud)
OUTPUT
[1, 2, 3, 6, 8]
Run Code Online (Sandbox Code Playgroud)
Ser*_*ndt 20
对于大数据框:
df['A'].drop_duplicates().sort_values()
Run Code Online (Sandbox Code Playgroud)
EdC*_*ica 13
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)
Run Code Online (Sandbox Code Playgroud)
所以你必须在打电话print a
后再打电话sort
.
例如.:
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]
Run Code Online (Sandbox Code Playgroud)
Bow*_*Liu 13
今天自己遇到了这个问题。我认为您的代码返回“无”的原因(正是我使用相同方法得到的)是
a.sort()
Run Code Online (Sandbox Code Playgroud)
正在调用排序函数来改变列表 a。在我的理解中,这是一个修改命令。要查看结果,您必须使用 print(a)。
我的解决方案,因为我试图将所有内容都保存在熊猫中:
pd.Series(df['A'].unique()).sort_values()
Run Code Online (Sandbox Code Playgroud)
MDM*_*313 12
我更喜欢oneliner:
print(sorted(df['Column Name'].unique()))
Run Code Online (Sandbox Code Playgroud)
我建议使用 numpy 的排序,因为无论如何熊猫在后台做的事情:
import numpy as np
np.sort(df.A.unique())
Run Code Online (Sandbox Code Playgroud)
但是在 Pandas 中做所有事情也是有效的。
您也可以使用drop_duplicates()代替unique()
df = pd.DataFrame({'A':[1,1,3,2,6,2,8]})
a = df['A'].drop_duplicates()
a.sort()
print a
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
57305 次 |
最近记录: |