我的資料框是:
| 0 | 1 | 2 | 3 |
|---|---|---|---|
| 一種 | 1091 | 347 | 2164 |
| b | 208 | 284 | 27647 |
| C | 0 | 8126 | 22 |
轉置后
| 0 | 一種 | b | C |
|---|---|---|---|
| 1 | 1.091 | 208 | 0 |
| 2 | 347 | 284 | 8126 |
| 3 | 2161 | 27647 | 22 |
df=df.set_index(0)
print(df)
df = df.T
print(df)
df = df.sort_values(by=df.index, ascending=True)
print(df)
但我收到如下錯誤:
KeyError: Int64Index([1, 2, 3, 4], dtype='int64')
我正在嘗試將索引值繪制到列,但它應該按升序排列,因為索引 3 指的是新值,但索引 1 是時間范圍內的舊值。
fig = px.line(df, x=df.index, y=df['a'])
fig.show()
uj5u.com熱心網友回復:
而不是df.sort_values(by=df.index),使用df.sort_index:
df = df.sort_index(ascending=True)
輸出:
>>> df
1 2 3
a 1091 347 2164
b 208 284 27647
c 0 8126 22
uj5u.com熱心網友回復:
如果您使用串列理解將索引強制轉換為 str dtype,則可以對索引進行排序。
df = pd.DataFrame({'0': {0: 'a', 1: 'b', 2: 'c'},
'1': {0: 1091, 1: 208, 2: 0},
'2': {0: 347, 1: 284, 2: 8126},
'3': {0: 2164, 1: 27647, 2: 22}})
df = df.T
df=df.set_index(0)
df.index = [str(x) for x in df.index]
df.sort_index(ascending=True)
輸出df:
1 2
1091 208 0
2164 27647 22
347 284 8126
a b c
uj5u.com熱心網友回復:
我寧愿按特定列排序。sort_index 按第一列 afaik 排序。
df.sort_values('column name')
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/443056.html
