首页 > 解决方案 > 创建一个数据框来详细说明另一个数据框的信息

问题描述

我有一个数据框,其中包含付款金额和付款次数以及开始日期。我想创建一个新的数据框,其中包含每月一行的所有付款。各位大神能不能给个小窍门怎么完成?

# Import pandas library 
import pandas as pd 

# initialize list of lists 
data = [[1,'2017-06-09',300,3]] 

# Create the pandas DataFrame 
df = pd.DataFrame(data, columns = ['ID','DATE','VALUE','PAYMENTS']) 

# print dataframe. 
df 

现有数据帧字段:

在此处输入图像描述

DATAFRAME DESIRED,打开付款并更新日期: 在此处输入图像描述

我的第一个想法是制作一个附加付款的循环。但是如果在这个循环中我已经放置了其他字段并生成了新的数据框,那么任务就会完成。

result = [] 
for value in df["PAYMENTS"]: 
if value == 1: 
    result.append(1) 
elif value ==3: 
    for x in range(1,4):
        result.append(x) 
else: 
    for x in range(1,7):
        result.append(x)

标签: pythonpandas

解决方案


这是我的尝试:

df.VALUE = df.VALUE / df.PAYMENTS
df = df.merge(df.ID.repeat(df.PAYMENTS), on='ID', how='outer')
df.PAYMENTS = df.groupby('ID').cumcount() + 1

输出:

   ID        DATE  VALUE  PAYMENTS
0   1  2017-06-09  100.0         1
1   1  2017-06-09  100.0         2
2   1  2017-06-09  100.0         3

推荐阅读