簡體   English   中英

使用熊貓讀取以行作為列名的文本文件

[英]Use pandas to read in text file with row as column names

我正在一個項目中讀取由用戶生成的可變長度的文本文件。 文本文件的開頭有幾個注釋,其中之一需要用作列名。 我知道可以使用genfromtxt()來做到這一點,但是我必須使用pandas。 這是一個示例文本文件的開頭:

#GeneratedFile
#This file will be generated by a user
#a b c d f g h i j k l m n p q r s t v w x y z
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

我需要#a,b,c,...作為列名。 我嘗試了以下代碼行以讀取數據並將其更改為數組,但是它僅返回行,而忽略了列名。

import pandas as pd    
data = pd.read_table('example.txt',header=2)    
d = pd.DataFrame.as_matrix(data)

有沒有不使用genfromtxt()的方法?

一種方法是嘗試以下操作:

df = pd.read_csv('example.txt', sep='\s+', engine='python', header=2)

# the first column name become #a so, replacing the column name
df.rename(columns={'#a':'a'}, inplace=True)

# alternatively, other way is to replace # from all the column names
#df.columns = [column_name.replace('#', '') for column_name in df.columns]
print(df)

結果:

   a  b  c  d  f  g  h  i  j   k ...   p   q   r   s   t   v   w   x   y   z
0  0  1  2  3  4  5  6  7  8   9 ...  13  14  15  16  17  18  19  20  21  22
1  1  2  3  4  5  6  7  8  9  10 ...  14  15  16  17  18  19  20  21  22  23

[2 rows x 23 columns]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM