2016-12-15 60 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