2016-05-26 10 views

答えて

1

することができます.str.extract()機能を使用してください。

In [163]: df.foo.str.extract(r'(?P<foo>\d*)[\.\s]*(?P<bar>.*)', expand=True) 
Out[163]: 
    foo bar 
0  abc 
1 2 abc 
2 3 abc 
1

str.splitを使用できますが、maskTrueの場合はnumpy.whereの場合はスワップ値が必要です。あなたはフォルダを持っている場合は、に一時ファイルを置くことができ、CSVファイルを作成して、新しい区切りでそれを再読み込みすることができます

df1 = (df.foo.str.split('. ', expand=True)) 
df1.columns = ['foo','bar'] 

print (df1) 
    foo bar 
0 abc None 
1 2 abc 
2 3 abc 

mask = df1.bar.isnull() 
print (mask) 
0  True 
1 False 
2 False 
Name: bar, dtype: bool 

df1['foo'], df1['bar'] = np.where(mask, df1['bar'], df1['foo']), 
         np.where(mask, df1['foo'], df1['bar']) 

df1.foo.fillna('', inplace=True) 

print (df1) 
    foo bar 
0  abc 
1 2 abc 
2 3 abc 
1

''fooによって最終fillna

df.to_csv('yourfolder/yourfile.csv',index = False) 

df = pd.read_csv('yourfolder/yourfile.csv',sep = '. ') 
関連する問題