2016-12-15 53 views
0

數據文件是這樣的如何讀取大熊貓不均勻數據文件

A.1 
B 
C 
D 
A.2 
E 
F 

,,, 
(simplified somewhat) 

和需要讀入到熊貓數據幀這樣的:

A.1 B 
A.1 C 
A.1 D 
A.2 E 
A.2 F 
... 

有之間的數據線的數目不平坦A.1,A.2,A.3等 A.1,A.2等都標有一定的文字值,便於區分。

+0

請提供您嘗試過的代碼示例。 – happymacarts

+0

請在下面查看我的答案,並且如果它幫助您思考問題,請將其標記爲已接受。 –

回答

1

...和需要讀入數據幀熊貓這樣

我不相信大熊貓有什麼功能,支持直接讀取數據文件到你想要的格式。相反,將它讀入熊貓,然後使用熊貓api,如apply來創建一個新的列,等等。這只是一種可能的方式,並不是說它是非常熊貓式的。

import pandas as pd 
import numpy as np 

df = pd.DataFrame(['A.1','B','C','D','A.2','E','F']) 

def stacker(row): 
    s = row[0] 
    return s if '.' in s else np.nan  
df['section'] = df.apply(stacker, axis=1) 
print(df.fillna(method='pad')) 

# now there is a new column with the expected values 
# some additional cleaning would be required to cut out some of the rows 

    0 section 
0 A.1  A.1 
1 B  A.1 
2 C  A.1 
3 D  A.1 
4 A.2  A.2 
5 E  A.2 
6 F  A.2