1
我需要使用第三行作爲數據框的標籤,但保留前兩行用於其他用途。如何將現有數據框上的標籤更改爲現有行?閱讀後使用不同的行作爲熊貓標籤
所以基本上這個數據幀
A B C D
1 2 3 4
5 7 8 9
a b c d
6 4 2 1
成爲
a b c d
6 4 2 1
我不能只是設置的標頭時,讀取該文件,因爲我需要的前兩行和標籤進行一些處理
我需要使用第三行作爲數據框的標籤,但保留前兩行用於其他用途。如何將現有數據框上的標籤更改爲現有行?閱讀後使用不同的行作爲熊貓標籤
所以基本上這個數據幀
A B C D
1 2 3 4
5 7 8 9
a b c d
6 4 2 1
成爲
a b c d
6 4 2 1
我不能只是設置的標頭時,讀取該文件,因爲我需要的前兩行和標籤進行一些處理
一種方法是隻是爲了分得一杯羹,然後覆蓋列:
In [71]:
df1 = df.loc[3:]
df1.columns = df.loc[2].values
df1
Out[71]:
a b c d
3 6 4 2 1
然後,您可以分配回df
感興趣的排片:
In [73]:
df = df[:2]
df
Out[73]:
A B C D
0 1 2 3 4
1 5 7 8 9
首先將前兩行復制到新的DataFrame中。然後使用第二行中包含的數據重命名列。最後,刪除前三行數據。
import pandas as pd
df = pd.DataFrame({'A': {0: '1', 1: '5', 2: 'a', 3: '6'},
'B': {0: '2', 1: '7', 2: 'b', 3: '4'},
'C': {0: '3', 1: '8', 2: 'c', 3: '2'},
'D': {0: '4', 1: '9', 2: 'd', 3: '1'}})
df2 = df.loc[:1, :].copy()
df.columns = [c for c in df.loc[2, :]]
df.drop(df.index[:3], inplace=True)
>>> df
a b c d
3 6 4 2 1
>>> df2
A B C D
0 1 2 3 4
1 5 7 8 9
我不明白你的意思是「保留前兩行用於其他用途」。你的結果是一行DataFrame。其他兩行發生了什麼? – BrenBarn
它通過'metaData = data [:2]加載到單獨的數據框中' – bischoffingston