如何将数据帧中的值添加到字典中的另一个数据帧中?

2024-04-18 23:44:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下dictionarydataframe

cust_dict = {'ABC': Empty DataFrame
Columns: [Date, Particulars, Vch No., Outwards, Amount]
Index: [], 'BCD': Empty DataFrame
Columns: [Date, Particulars, Vch No., Outwards, Amount]
Index: []}

df
               Date                          Particulars       Vch Type

0   2017-04-01 00:00:00                      ABC                   Sales  
1   2017-04-06 00:00:00                      BCD                   Sales   
1   2017-04-05 00:00:00                      ABC                   Sales 

我试图从df获取'ABC'作为key,从dictionary中提取dataframe,并将日期添加到dictionary嵌套dataframe中的Date列中。我试过.atappendassign

for index, row in df.iterrows():
    print(row['Particulars'])
    cust_name = row['Particulars']
    cust_dict[cust_name] = cust_dict[cust_name]['Date'].append(date)
    cust_dict[cust_name].at['Date'] = row['Date']
    # A lot of variations of .at
    if cust_name == 'ABC':
       code = 4
       cust_dict[cust_name]['Particulars'] = code
    elif cust_name == 'BCD:
       code = 5
       cust_dict[cust_name]['Particulars'] = code

我不知道该怎么做,或者这根本不可能

df将有多行,particulars列将有一个公司说ABC4-5次或更多次

预期产出:

cust_dict['ABC']
   Date                          Particulars                  Vch Type

0   2017-04-01 00:00:00                 4                       Sales 
1   2017-04-05 00:00:00                 4                       Sales 

短暂性脑缺血发作


Tags: namedataframedfdatedictionarycodedictat
1条回答
网友
1楼 · 发布于 2024-04-18 23:44:49

这是通过字典理解的一种方法

如下所示,我建议您使用字典来映射细节,而不是if/elif构造

import pandas as pd

df = pd.DataFrame([['2017-04-01 00:00:00', 'ABC', 'Sales'],
                   ['2017-04-06 00:00:00', 'BCD', 'Sales'],
                   ['2017-04-05 00:00:00', 'ABC', 'Sales']],
                  index=[0, 1, 1],
                  columns=['Date', 'Particulars', 'Vch Type'])

part_map = {'ABC': 4, 'BCD': 5}

result = {k: df[df['Particulars'] == k].assign(Particulars=part_map[k]) \
             for k in df['Particulars'].unique()}

print(result['ABC'])

#                   Date  Particulars Vch Type
# 0  2017-04-01 00:00:00            4    Sales
# 1  2017-04-05 00:00:00            4    Sales

相关问题 更多 >