我想將一組資料框行移到開頭
相應行的索引是這些:
indexes = [2188, 2163, 37, 47, 36, 41, 61, 1009, 40, 39, 123, 121, 2151, 19, 2, 8, 117, 205, 204]
所以:
index 204 -> index 0
index 205 -> index 1
.
.
index 2188 -> index 18
目前我有這段代碼只允許移動一行:
def move_row(index):
idx = [index] [i for i in range(len(df)) if i != index]
return df.iloc[idx].reset_index(drop=True)
uj5u.com熱心網友回復:
這是一種基于使用集合理論從索引創建新集合串列來重新索引 DataFrame 的方法。這部分假設索引將是唯一的。
import pandas as pd
## sample DataFrame
d = {'col1': [0, 1, 2, 3, 4], 'col2': [4, 5, 6, 9, 5], 'col3': [7, 8, 12, 1, 11]}
df = pd.DataFrame(data=d)
print(df)
## col1 col2 col3
## 0 0 4 7
## 1 1 5 8
## 2 2 6 12
## 3 3 9 1
## 4 4 5 11
indexes = [3, 1]
new_idx = indexes list(set(range(len(df))).difference(indexes))
df = df = df.iloc[new_idx].reset_index(drop = True)
print(df)
## col1 col2 col3
## 0 3 9 1
## 1 1 5 8
## 2 0 4 7
## 3 2 6 12
## 4 4 5 11
uj5u.com熱心網友回復:
最后,我遵循了以下步驟:
- 獲取所需的行子集
- 從原始資料框中洗掉這些行
- 將所需的行與資料框的其余部分連接起來
代碼:
indexes = [2430, 2187, 2199, 37, 47, 36, 121, 41, 61, 1009, 40, 39, 123, 2151, 19, 2, 8, 117, 205, 204]
rows = df.iloc[indexes].reset_index(drop = True)
del_rows_df = df.drop(indexes).reset_index(drop = True)
new_df = pd.concat([rows, del_rows_df]).reset_index(drop = True)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/450718.html
上一篇:如何使用iso周制作專欄?
下一篇:為什么Pandas中的列讀取不同
