如何对数据框中的值进行排序?

时间:2020-07-30 06:29:56

标签: python pandas dataframe

我正在尝试对值进行排序,但没有得到理想的结果。你能帮我怎么做吗?

示例:

df = pd.read_csv("D:/Users/SPate233/Downloads/iMedical/sqoop/New folder/metadata_file_imedical.txt", delimiter='~')
#df.sort_values(by = ['dependency'], inplace = True)
df.sort_values('dependency', ascending=True, inplace=True)
print(list(df['dependency'].unique()))

输出:

['0', '1', '1,10,11,26,28,55', '1,26,28', '10', '11', '12', '17,42', '2', '26,28', '33', '42', '6']

理想的输出:

['0', '1', '2', '6', '10', '11', '12', '33', '42', '17,42', '26,28', '1,26,28', '1,10,11,26,28,55']

1 个答案:

答案 0 :(得分:2)

按字符串的长度,然后按其值排序:

df.assign(len = df.dependency.str.len()).sort_values(["len", "dependency"])

输出为(为清楚起见,保留了len列):

          dependency  len
0                  0    1
1                  1    1
8                  2    1
12                 6    1
4                 10    2
5                 11    2
6                 12    2
10                33    2
11                42    2
7              17,42    5
9              26,28    5
3            1,26,28    7
2   1,10,11,26,28,55   16