gpt4 book ai didi

python - 新数据框,其中包含付款月份支付的债务百分比

转载 作者:行者123 更新时间:2023-12-04 09:35:50 26 4
gpt4 key购买 nike

我有两个数据框 df1df2 .
一位与客户 debt ,对方与客户paymentsdates .
我想创建一个新的数据框,其中包含付款当月支付的债务百分比,直到 01-2017 .

import pandas as pd

d1 = {'client number': ['2', '2','3','6','7','7','8','8','8','8','8','8','8','8'],
'month': [1, 2, 3,1,10,12,3,5,8,1,2,4,5,8],
'year':[2013,2013,2013,2019,2013,2013,2013,2013,2013,2014,2014,2015,2016,2017],
'payment' :[100,100,200,10000,200,100,300,500,200,100,200,200,500,50]}

df1 = pd.DataFrame(data=d1).set_index('client number')
df1
d2 = {'client number': ['2','3','6','7','8'],
'debt': [200, 600,10000,300,3000]}

df2 = pd.DataFrame(data=d2)


x=[1,2,3,4,5,6,7,8,9,10]
y=[2013,2014,2015,2016,2017]

for x in month and y in year
if df1['month']=x and df1['year']=year :
df2[month&year] = df1['payment']/df2['debt']
对于所有客户来说,结果必须是这样的

我错过了什么?
感谢您的时间和帮助

最佳答案

先设置index两个数据帧 df1df2client number ,然后使用 Index.map 映射 df1 中的客户号码到他们对应的 debt's来自 df2 ,然后使用 Series.div 划分 payments每个客户由他们各自的 debt's ,从而获得已支付的债务比例,然后创建一个新列 datedf1来自 monthyear列最终使用 DataFrame.join 连同 DataFrame.pivot_table :

df1 = df1.set_index('client number')
df2 = df2.set_index('client number')

df1['pct'] = df1['payment'].div(df1.index.map(df2['debt'])).round(2)
df1['date'] = df1['year'].astype(str) + '-' + df1['month'].astype(str).str.zfill(2)

df3 = (
df2.join(
df1.pivot_table(index=df1.index, columns='date', values='pct', aggfunc='sum').fillna(0))
.reset_index()
)
结果:
# print(df3)

client number debt 2013-01 2013-02 2013-03 2013-05 2013-08 ... 2013-12 2014-01 2014-02 2015-04 2016-05 2017-08 2019-01
0 2 200 0.5 0.5 0.00 0.00 0.00 ... 0.00 0.00 0.00 0.00 0.00 0.00 0.0
1 3 600 0.0 0.0 0.33 0.00 0.00 ... 0.00 0.00 0.00 0.00 0.00 0.00 0.0
2 6 10000 0.0 0.0 0.00 0.00 0.00 ... 0.00 0.00 0.00 0.00 0.00 0.00 1.0
3 7 300 0.0 0.0 0.00 0.00 0.00 ... 0.33 0.00 0.00 0.00 0.00 0.00 0.0
4 8 3000 0.0 0.0 0.10 0.17 0.07 ... 0.00 0.03 0.07 0.07 0.17 0.02 0.0

关于python - 新数据框,其中包含付款月份支付的债务百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62593392/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com