我已經從csv文件讀取數據到一個數據框中,該數據框包含25000多行和15列,我需要將所有行(包括最左側 - >索引)的一列移動到對,這樣我就可以得到一個空索引並且能夠用整數填充它。但是,列的名稱應該保持在同一個地方。所以,基本上我需要將除列名之外的所有內容都移到右邊。在Pandas數據框中移動列
我試圖重新索引,但得到了一個錯誤:
ValueError: cannot reindex from a duplicate axis
有沒有辦法做到這一點?
我已經從csv文件讀取數據到一個數據框中,該數據框包含25000多行和15列,我需要將所有行(包括最左側 - >索引)的一列移動到對,這樣我就可以得到一個空索引並且能夠用整數填充它。但是,列的名稱應該保持在同一個地方。所以,基本上我需要將除列名之外的所有內容都移到右邊。在Pandas數據框中移動列
我試圖重新索引,但得到了一個錯誤:
ValueError: cannot reindex from a duplicate axis
有沒有辦法做到這一點?
我會先用添加新列:
df['new'] = df.index
不是把你的數據框的列的名稱列表中有:
colnames = df.columns.tolist()
然後,你可以重新排列它們,因爲你需要,例如更改訂單,以便首先獲得最後一個「新」列,並將剩餘的一個位置移動到右側:
colnames = colnames[-1:] + colnames[:-1]
並重新分配:
df = df[colnames]
在大熊貓只能創建一個列到右邊,除非你做兩個數據幀之間的連接。然後,你可以重新安排,但你喜歡。
import pandas as pd
df = pd.read_csv('data.csv', header=None, names = ['A','B','C'])
print(df)
A B C
0 1 2 3
1 4 5 6
2 7 8 9
3 10 11 12
df['D'] = pd.np.nan # this creates an empty series
# and appends to the right
print(df)
A B C D
0 1 2 3 NaN
1 4 5 6 NaN
2 7 8 9 NaN
3 10 11 12 NaN
df = df[['D','A','B','C']] # rearrange as you like
print(df)
D A B C
0 NaN 1 2 3
1 NaN 4 5 6
2 NaN 7 8 9
3 NaN 10 11 12
df = YourDataFrame
col = "Your Column You Want To Move To The Start Of YourDataFrame"
df = pd.concat([df[col],df.drop(col,axis=1)], axis=1)
我已經更新了它,現在它更清楚。 – puk789