如何从pandas系列中删除Freq: MS, Name: des, dtype: int64?

问题描述 投票:0回答:1

我有一些熊猫系列,例如

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')

我期待最终输出为如下所示的 csv。我该如何解决这个问题?

python pandas csv dictionary series
1个回答
0
投票

您可以使用:

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()})
© www.soinside.com 2019 - 2024. All rights reserved.