0

csv 形式の次のデータセットのスニペットを次に示します。

quantity revenue     time_x    transaction_id   user_id
    1       0       57:57.0 0        0             0
    1       0       18:59.0 0        1

user_id が空のときに行全体を削除したい。Pythonでこれを行うにはどうすればよいですか? これまでのところ、私のコードは次のとおりです。

activity = pd.read_csv("activity(delimited).csv", delimiter=';', error_bad_lines=False, dtype=object)
impression = pd.read_csv("impression(delimited).csv", delimiter=';', error_bad_lines=False, dtype=object)
click = pd.read_csv("click(delimited).csv", delimiter=';', error_bad_lines=False, dtype=object)

pre_merge = activity.merge(impression, on="user_id", how="outer")
merged = pre_merge.merge(click, on="user_id", how="outer")
merged.to_csv("merged.csv", index=False)

open_merged = pd.read_csv("merged.csv", delimiter=',', error_bad_lines= False, dtype=object)

filtered_merged = open_merged.dropna(axis='columns', how='all')

また、コードを効率的に書くにはどうすればよいでしょうか。

4

2 に答える 2

0

別のスタイル: データを取得し、結合してから削除します。名前空間をクリーンに保ちます。

activity   = pd.read_csv("activity(delimited).csv", delimiter=';', error_bad_lines=False)
impression = pd.read_csv("impression(delimited).csv", delimiter=';', error_bad_lines=False)
pre_merge  = activity.merge(impression, on="user_id", how="outer")
del activity, impression

click      = pd.read_csv("click(delimited).csv", delimiter=';', error_bad_lines=False)
merged     = pre_merge.merge(click, on="user_id", how="outer")
merged.to_csv("merged.csv", index=False)
del click

open_merged = pd.read_csv("merged.csv", error_bad_lines= False)

filtered_merged = open_merged.dropna(axis='columns', how='all')
于 2016-06-29T03:22:53.777 に答える