Python 熊猫。如何在不更改索引的情况下对数据帧进行排序?
输出:Python 熊猫。如何在不更改索引的情况下对数据帧进行排序?,python,pandas,Python,Pandas,输出: df2 = pd.DataFrame({ "A": [26, 2, 3], "B": [0, 7, 1], "C": [7, 5, 4] }, index=list('abc')) df2 df2 = pd.DataFrame({ "A": [26, 2, 3], "B": [0, 7, 1], "C": [7,
df2 = pd.DataFrame({
"A": [26, 2, 3],
"B": [0, 7, 1],
"C": [7, 5, 4]
},
index=list('abc'))
df2
df2 = pd.DataFrame({
"A": [26, 2, 3],
"B": [0, 7, 1],
"C": [7, 5, 4]
},
index=list('abc'))
print(df2)
df2 = pd.DataFrame(df2.sort_values(['B', 'A'], ascending=[False, True]).to_numpy(),
index=df2.index, columns=df2.columns)
print(df2)
df2.sort_值['B','A'],升序=[False,True]给出:
带索引的列现在以新的顺序被洗牌,但我希望它在排序之后仍然是一样的。参数ignore_index只是将索引从0设置为n-1。而sort_index函数也没有帮助,因为索引不能按字典顺序排列。您可以在排序后重新添加索引:
A B C
b 2 7 5
c 3 1 4
a 26 0 7
您可以在排序后重新添加索引:
A B C
b 2 7 5
c 3 1 4
a 26 0 7
使用数据帧构造函数:
df2 = df2.sort_values(['B', 'A'], ascending=[False, True]).reset_index(drop=True)
df2['index'] = ['a', 'b', 'c']
df2.set_index('index', inplace=True)
print(df2)
A B C
index
a 2 7 5
b 3 1 4
c 26 0 7
A B C
a 26 0 7
b 2 7 5
c 3 1 4
输出:
df2 = pd.DataFrame({
"A": [26, 2, 3],
"B": [0, 7, 1],
"C": [7, 5, 4]
},
index=list('abc'))
df2
df2 = pd.DataFrame({
"A": [26, 2, 3],
"B": [0, 7, 1],
"C": [7, 5, 4]
},
index=list('abc'))
print(df2)
df2 = pd.DataFrame(df2.sort_values(['B', 'A'], ascending=[False, True]).to_numpy(),
index=df2.index, columns=df2.columns)
print(df2)
使用构造函数创建新的数据帧:
df2 = df2.sort_values(['B', 'A'], ascending=[False, True]).reset_index(drop=True)
df2['index'] = ['a', 'b', 'c']
df2.set_index('index', inplace=True)
print(df2)
A B C
index
a 2 7 5
b 3 1 4
c 26 0 7
A B C
a 26 0 7
b 2 7 5
c 3 1 4
输出:
df2 = pd.DataFrame({
"A": [26, 2, 3],
"B": [0, 7, 1],
"C": [7, 5, 4]
},
index=list('abc'))
df2
df2 = pd.DataFrame({
"A": [26, 2, 3],
"B": [0, 7, 1],
"C": [7, 5, 4]
},
index=list('abc'))
print(df2)
df2 = pd.DataFrame(df2.sort_values(['B', 'A'], ascending=[False, True]).to_numpy(),
index=df2.index, columns=df2.columns)
print(df2)
使用数据帧构造函数:
df2 = df2.sort_values(['B', 'A'], ascending=[False, True]).reset_index(drop=True)
df2['index'] = ['a', 'b', 'c']
df2.set_index('index', inplace=True)
print(df2)
A B C
index
a 2 7 5
b 3 1 4
c 26 0 7
A B C
a 26 0 7
b 2 7 5
c 3 1 4
输出:
df2 = pd.DataFrame({
"A": [26, 2, 3],
"B": [0, 7, 1],
"C": [7, 5, 4]
},
index=list('abc'))
df2
df2 = pd.DataFrame({
"A": [26, 2, 3],
"B": [0, 7, 1],
"C": [7, 5, 4]
},
index=list('abc'))
print(df2)
df2 = pd.DataFrame(df2.sort_values(['B', 'A'], ascending=[False, True]).to_numpy(),
index=df2.index, columns=df2.columns)
print(df2)
使用构造函数创建新的数据帧:
df2 = df2.sort_values(['B', 'A'], ascending=[False, True]).reset_index(drop=True)
df2['index'] = ['a', 'b', 'c']
df2.set_index('index', inplace=True)
print(df2)
A B C
index
a 2 7 5
b 3 1 4
c 26 0 7
A B C
a 26 0 7
b 2 7 5
c 3 1 4
输出:
df2 = pd.DataFrame({
"A": [26, 2, 3],
"B": [0, 7, 1],
"C": [7, 5, 4]
},
index=list('abc'))
df2
df2 = pd.DataFrame({
"A": [26, 2, 3],
"B": [0, 7, 1],
"C": [7, 5, 4]
},
index=list('abc'))
print(df2)
df2 = pd.DataFrame(df2.sort_values(['B', 'A'], ascending=[False, True]).to_numpy(),
index=df2.index, columns=df2.columns)
print(df2)
它不是随机的。排序后它保留了行索引。正确,我的措辞很糟糕。它不是随机洗牌的。排序后它保留了行索引。正确,我的措辞很糟糕。