我有購買數據並希望用一個新列標記它們,它提供有關購買日期的信息。爲此,我使用每次購買的時間戳列的小時。通過Pandas DataFrame迭代,使用條件並添加列
標籤應該像這樣工作:
hour 4 - 7 => 'morning'
hour 8 - 11 => 'before midday'
...
我拿起已經時間戳的時間。現在,我有一個DataFrame,其中包含50 mio的記錄,如下所示。
user_id timestamp hour
0 11 2015-08-21 06:42:44 6
1 11 2015-08-20 13:38:58 13
2 11 2015-08-20 13:37:47 13
3 11 2015-08-21 06:59:05 6
4 11 2015-08-20 13:15:21 13
目前我的方法是使用6X .iterrows(),每一個不同的狀態:
for index, row in basket_times[(basket_times['hour'] >= 4) & (basket_times['hour'] < 8)].iterrows():
basket_times['periode'] = 'morning'
則:
for index, row in basket_times[(basket_times['hour'] >= 8) & (basket_times['hour'] < 12)].iterrows():
basket_times['periode'] = 'before midday'
等。
但是,50個mio記錄的6個循環中的一個已經花費了一個小時。有一個更好的方法嗎?
作品完美!我也發現,我的方法根本不起作用。 –