[英]How do I format my pandas dataframe through python to get columns in the csv output?
我正在編寫代碼,以使餐廳的營業時間增加:
merge_HOO = my_list
merge_HOO=pd.DataFrame([(merge_HOO)],
columns = ['day','start','end'])
print(merge_HOO)
merge_HOO.to_csv('merge_HOO_test1.csv')
輸出:
hours_type is_open_now open
0 REGULAR FALSE [{'start': '1100', 'end': '2200', 'day': 0}, {'start': '1100', 'end': '2200', 'day': 1}, {'start': '1100', 'end': '2200', 'day': 2}, {'start': '1100', 'end': '2200', 'day': 3}, {'start': '1100', 'end': '2200', 'day': 4}, {'start': '1100', 'end': '2200', 'day': 5}, {'start': '1100', 'end': '2100', 'day': 6}]
但是,我希望輸出看起來像第1列:標頭應該是'day'
,第2列: 'start'
,第3列: 'end'
並且在每列下應該是各自的值。
con=len(content)))
AssertionError:傳遞了3列,傳遞的數據有1列
編輯:添加了my_list的外觀。
my_list = [{'open': [{'is_overnight': False, 'start': '1100', 'end': '2200', 'day': 0},
{'is_overnight': False, 'start': '1100', 'end': '2200', 'day': 1},
{'is_overnight': False, 'start': '1100', 'end': '2200', 'day': 2},
{'is_overnight': False, 'start': '1100', 'end': '2200', 'day': 3},
{'is_overnight': False, 'start': '1100', 'end': '2200', 'day': 4},
{'is_overnight': False, 'start': '1100', 'end': '2200', 'day': 5},
{'is_overnight': False, 'start': '1100', 'end': '2100', 'day': 6}], 'hours_type': 'REGULAR',
'is_open_now': False}]
for i in my_list[0]["open"]:
del i["is_overnight"]
print(my_list)
我該怎么做呢?
您已將merge_HOO
的結構merge_HOO
為一個字典,該字典的鍵包含您列的數據。 由於我想您最終將擁有多個餐廳,因此我在my_list
為每個餐廳添加了一個計數器item
my_list = [{'open': [{'is_overnight': False, 'start': '1100', 'end': '2200', 'day': 0},
{'is_overnight': False, 'start': '1100', 'end': '2200', 'day': 1},
{'is_overnight': False, 'start': '1100', 'end': '2200', 'day': 2},
{'is_overnight': False, 'start': '1100', 'end': '2200', 'day': 3},
{'is_overnight': False, 'start': '1100', 'end': '2200', 'day': 4},
{'is_overnight': False, 'start': '1100', 'end': '2200', 'day': 5},
{'is_overnight': False, 'start': '1100', 'end': '2100', 'day': 6}], 'hours_type': 'REGULAR',
'is_open_now': False}]
merge_HOO = {'item': [], 'day': [], 'start': [], 'end': []}
for i, restaurant in enumerate(my_list):
for item in restaurant['open']:
merge_HOO['item'].append(i)
merge_HOO['day'].append(item['day'])
merge_HOO['start'].append(item['start'])
merge_HOO['end'].append(item['end'])
merge_HOO = pd.DataFrame(merge_HOO,
columns=['item', 'day', 'start', 'end'])
print(merge_HOO)
它會產生
item day start end
0 0 0 1100 2200
1 0 1 1100 2200
2 0 2 1100 2200
3 0 3 1100 2200
4 0 4 1100 2200
5 0 5 1100 2200
6 0 6 1100 2100
那是你想要的嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.