2016-10-26 45 views
1

我有一個格式化的這樣一個文本文件:如何讀取由空格分隔的文本文件到DataFrame中?

A00  0010 00000 
A001 0011 00000 
A00911 0019 00000 
A0100 0020 10000 

我想讀取這個文件到一個數據幀。所以我嘗試過:

import pandas as pd 
path = *file path* 
df = pd.read_csv(path, sep = '\t', header = None) 

我得到的是一個有4行和一列的DataFrame。

      0 
0  A00  0010 00000 
1  A001 0011 00000 
2  A00911 0019 00000 
3  A0100 0020 10000 

[4 rows x 1 columns] 

這是因爲值不是由「\ t」分隔的。根據字符串的長度不同,列之間的空格數會有所不同。

所需的DataFrame應該有四行三列。

  0  1  2 
0  A000 0010 00000 
1  A001 0011 00000 
2  A009 0019 00000 
3  A0100 0020 10000 

[4 rows x 3 columns] 
+0

從我接觸大熊貓開始就有一段時間了,但如果你使用''''inste ''\ t''的廣告,它不起作用嗎? –

+0

不,我試過了。 –

+3

使用'delim_whitespace':'pd.read_csv(data,delim_whitespace = True,header = None,dtype = str)' –

回答

5

您可以用dtype=str一起提供delim_whitespace=True保持在read_csv的dtypes ARGS,如:

df = pd.read_csv(path, delim_whitespace=True, header=None, dtype=str) 
df 

Image

1

嘗試使用正則表達式中的 「九月」 命令

df = pd.read_csv(path, sep = ' +', header = None) 
+0

您可能希望保留數字字符串,而不是將它們轉換爲整數,例如'pd.read_csv(path,sep ='+',header = None,engine ='python',converters = {1:str, 2:str})' –

相關問題