2015-07-09 27 views
10

Tôi hiện đang có một dataframe trông như thế này:Python Pandas Thay header với Top Row

  Unnamed: 1 Unnamed: 2 Unnamed: 3 Unnamed: 4 
0 Sample Number Group Number Sample Name Group Name 
1    1.0   1.0   s_1   g_1 
2    2.0   1.0   s_2   g_1 
3    3.0   1.0   s_3   g_1 
4    4.0   2.0   s_4   g_2 

Tôi đang tìm kiếm một cách để xóa các dòng tiêu đề và làm cho hàng đầu tiên trên dòng tiêu đề mới, vì vậy các dataframe mới sẽ trông như thế này: thứ

Sample Number Group Number Sample Name Group Name 
0    1.0   1.0   s_1   g_1 
1    2.0   1.0   s_2   g_1 
2    3.0   1.0   s_3   g_1 
3    4.0   2.0   s_4   g_2 

tôi đã thử dọc theo dòng của if 'Unnamed' in df.columns: sau đó làm cho dataframe mà không có tiêu đề df.to_csv(newformat,header=False,index=False) nhưng tôi dường như không thể nhận được bất cứ nơi nào. Bất kỳ trợ giúp được đánh giá cao!

Trả lời

31
new_header = df.iloc[0] #grab the first row for the header 
df = df[1:] #take the data less the header row 
df.columns = new_header #set the header row as the df header 
6

Khung dữ liệu trong bộ nhớ có thể được thay đổi bằng cách chỉ làm

df.columns = df.iloc[0] 
df = df[1:] 

Sau đó

df.to_csv(path, index=False) 

Nên làm các trick.

+0

Đây là một câu trả lời bettter, bởi vì không có mã dư thừa (new_header) trong việc này. –

0

Nếu bạn muốn có một one-liner, bạn có thể làm:

df.rename(columns=df.iloc[0]).drop(df.index[0]) 
Các vấn đề liên quan