我在列表格式的pandas数据框中有多个索引调查数据。其中一个子集如下。我试图按升序排序列,而不是每个等级的值计数。
rank these items on a scale of 1-5
rank these items on a scale of 1-3
A B C
X Y Z
1 2 1
1 2 1 2 3 2
2 1 3 1 2 3
3 1 1 1 1 2
5 3 2 2 1 3
1 1 2 3 1 1
NA 5 3 3 2 NA
4 NA NA 1 3 1
1 4 4 2 NA 2
3 3 5`
我使用以下代码从数据框中删除NA并获取值的计数但我无法在计数之前按升序对值进行排序。
`def find_column_with_max_length(df):
n = ''
count = 0
for name, values in df.iteritems():
df[name] = pd.to_numeric(df[name], errors='coerce')
c = len(df[name].value_counts().values.tolist())
if c > count:
count = c
n = name
return n`
df1 = pd.DataFrame()
df1 = df1.sort_values('n', ascending=True)
n = find_column_with_max_length(df)
df1[n] = pd.DataFrame(df[n].value_counts().values.tolist(), columns=[n])
for name, values in df.iteritems():
if name != n:
df1[name] = pd.DataFrame(df[name].value_counts().values.tolist(),
columns=[name])`
非常感谢这方面的任何帮助。