2016-11-17 9 views
-2

あるファイルを1行ずつ解析する必要がありました。ファイルの形式は 'name age gender hobby1 hobby2...'です。ファイルからのデータの解析

まず、namedtuple('info',['name','age', 'gender','hobby'])という名前のタプルを使用することでした。

ファイル内のデータを、対応する値を持つタプルのリストに保存するにはどうすればよいですか。私はline.split()を使ってみましたが、スペースを区切った趣味をどのようにしてinfo.hobbyに保存するのか分かりませんでした。

Input file

+1

これまでの作業を表示してください。議論の出発点になるでしょう。データファイルも表示する。ああ、もしあればエラー。 –

+0

抜粋を投稿できますか?どのように分かれていますか?カンマ、スペース、タブ – rovr138

+1

あなたがこれまでに行った試みを示してください。 – James

答えて

1

私が正しくあなたを理解していれば、あなたはパンダを使用することができ、データがこのようであれば9月として「this_is_a_space」を渡す:

name age gender hobby1 hobby2 
steve 12 male xyz abc 
bob 29 male swimming golfing 
alice 40 female reading cooking 
tom 50 male sleeping 

、ここでは、上記の方法のための構文は次のとおりです。

import pandas as pd 

df = pd.read_csv('file.txt', sep=' ') 
df.fillna(' ', inplace=True) 
df['hobby'] = df[['hobby1', 'hobby2']].apply(lambda i: ' '.join(i), axis=1) 
df.drop(['hobby1', 'hobby2'], axis=1, inplace=True) 

print df 

アウト:

name age gender    hobby 
0 steve 12 male   xyz abc 
1 bob 29 male swimming golfing 
2 alice 40 female reading cooking 
3 tom 50 male  sleeping 

EDIT:あなたのデータを上記のコメントから追加しました

+0

はい、私はすべての趣味を1つのフィールド名。趣味1の趣味2の意味、出力に趣味のフィールドが1つしかないようにして、[xyz abc]と表示するようにします –

+0

私の答えを編集しました – anshanno

関連する問題