我有一些熊猫系列,例如
result_ses
。我想将所有数据累积到字典中并将数据保存在 csv 中。我正在使用 Google Colab 工作。但我在从数据中删除一些不必要的信息时遇到了麻烦。我的代码如下:
asd = {}
for prod in unique_products[:4]:
asd[prod] = {} # empty dictionary for each product
asd[prod]['ses'] = result_ses
asd[prod]['des'] = result_des
print(asd)
输出如下:
{'2-28-437': {'ses': 2021-05-01 16
2021-06-01 16
2021-07-01 16
Freq: MS, Name: ses, dtype: int64,
'des': 2021-05-01 14
2021-06-01 14
2021-07-01 13
Freq: MS, Name: des, dtype: int64},
'2-2-329': {'ses': 2021-05-01 16
2021-06-01 16
2021-07-01 16
Freq: MS, Name: ses, dtype: int64,
'des': 2021-05-01 14
2021-06-01 14
2021-07-01 13
Freq: MS, Name: des, dtype: int64},
'24-30-42-7400': {'ses': 2021-05-01 16
2021-06-01 16
2021-07-01 16
Freq: MS, Name: ses, dtype: int64,
'des': 2021-05-01 14
2021-06-01 14
2021-07-01 13
Freq: MS, Name: des, dtype: int64},
'2-53-1151': {'ses': 2021-05-01 16
2021-06-01 16
2021-07-01 16
Freq: MS, Name: ses, dtype: int64,
'des': 2021-05-01 14
2021-06-01 14
2021-07-01 13
Freq: MS, Name: des, dtype: int64}}
其中
result_ses
和result_des
都是pandas系列,unique_products
是字符串列表。
# if I type
result_ses.info()
# I get
<class 'pandas.core.series.Series'>
DatetimeIndex: 3 entries, 2021-05-01 to 2021-07-01
Freq: MS
Series name: ses
Non-Null Count Dtype
-------------- -----
3 non-null int64
dtypes: int64(1)
memory usage: 48.0 bytes
要查看
result_ses
的内容,我输入 print(result_ses)
并得到:
2021-05-01 16
2021-06-01 16
2021-07-01 16
Freq: MS, Name: ses, dtype: int64 # I do not want this included in the csv
我不希望字典
asd
专门包含这两个额外信息频率:MS,名称:des,dtype:int64我只想要其余部分,以便我可以在csv中获得所需的输出。使用以下代码,我尝试将数据保存在 csv 中,但它不是我想要的格式。
op_path = '/content/output/'
output_file_path = op_path + f'desired_output.csv'
ddf = pd.DataFrame.from_dict(asd, orient='index')
ddf.to_csv(output_file_path, index_label='Date')
您可以使用:
for prod in unique_products[:4]:
asd[prod] = {} # empty dictionary for each product
asd[prod]['ses_date'] = result_ses.index
asd[prod]['ses_val'] = result_ses.to_numpy()
asd[prod]['des_date'] = result_des.index
asd[prod]['des_val'] = result_des.to_numpy()
df = pd.concat({k: pd.DataFrame(v) for k, v in asd.items()})