我需要拆分資料幀,以便可以使用完整資料幀內的空間資料創建新檔案。
我有一個看起來像這樣的資料框:
完整資料框
我想使用多個條件創建一些新的資料框
我希望最終得到一堆具有條件的資料幀,例如:
Z_year = 2020, Z_month = 5, Z_group = 'weekday', time_range = '08:00 to 12:00'
Z_year = 2020, Z_month = 5, Z_group = 'weekday', time_range = '12:00 to 18:00'
Z_year = 2020, Z_month = 5, Z_group = 'weekday', time_range = '18:00 to 01:00'
Z_year = 2020, Z_month = 5, Z_group = '周末', time_range = '08:00 to 12:00'
Z_year = 2020, Z_month = 5, Z_group = '周末', time_range = '12:00 to 18:00'
Z_year = 2020, Z_month = 5, Z_group = '周末', time_range = '18:00 to 01:00'
Z_year = 2020, Z_month = 8, Z_group = 'weekday', time_range = '08:00 to 12:00'
Z_year = 2020, Z_month = 8, Z_group = 'weekday', time_range = '12:00 to 18:00'
Z_year = 2020, Z_month = 8, Z_group = 'weekday', time_range = '18:00 to 01:00'
...
Z_year = 2021, Z_month = 11, Z_Group = '周末', time_range = '18:00 to 01:00'
等等。
直到所有組合完成。
有沒有辦法遍歷我的資料框來做到這一點?
目標列是(年、月、組和時間范圍),每個列的唯一值是:(2020, 2021), (5, 8, 11), ('weekday', 'weekend') 和 ( 08:00 至 12:00、12:00 至 18:00、18:00 至 01:00)
...
#This is used to find unique values for target collumns
year_list = df['Z_year'].unique()
#Creating a new dataframe using only target values
a = df.loc[(df['Z_year'] == 2020) & (df['Z_month'] == 5) & (df.loc['Z_group'] == 'weekday') & (df.loc['time_range'] == '08:00 to 12:00')]
...
謝謝你的幫助!
uj5u.com熱心網友回復:
您可以像這樣遍歷資料框:
cols, rows = df.shape
for x in range(cols):
print(df[x:x 1])
您可以選擇候選項并將其附加到串列中,然后將其轉換為新的資料框。
uj5u.com熱心網友回復:
我建議使用 for 回圈和字典,以便使用由條件組合組成的譜號保存每個資料幀
dic = {}
for a in [2020,2021]:
for b in [5, 8, 11]:
for c in ['weekday', 'weekend']:
for d in ['08:00 to 12:00', '12:00 to 18:00', '18:00 to 01:00']:
idf = str(a) str(b) c d
dic[idf] = df.loc[(df['Z_year'] == a) & (df['Z_month'] == b) & (df.loc['Z_group'] == c) & (df.loc['time_range'] == d)]
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/366351.html
上一篇:如何處理Firestore以不一致的順序回傳檔案專案
下一篇:創建空資料框并通過回圈添加值
