python - 创建一个数据框来详细说明另一个数据框的信息
问题描述
我有一个数据框,其中包含付款金额和付款次数以及开始日期。我想创建一个新的数据框,其中包含每月一行的所有付款。各位大神能不能给个小窍门怎么完成?
# 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
现有数据帧字段:
我的第一个想法是制作一个附加付款的循环。但是如果在这个循环中我已经放置了其他字段并生成了新的数据框,那么任务就会完成。
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)
解决方案
这是我的尝试:
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
推荐阅读
- javascript - 将响应式表单字段作为道具传递给组件
- asp.net-core - 在 Asp.net Core 2.2 中构建项目的问题
- html - list-style-type 在 Chrome 中显示“无效的属性值”
- python - 对包含 numpy.ndarray 元素 PYTHON 的列表进行排序
- asp.net-mvc - Azure - App Insights - 如何在 Auth Id 中跟踪登录的用户名?
- trace - 有什么方法可以在不重新编译的情况下支持 usdt 探针(用户级静态定义跟踪)?
- html - 如何在flex中为每个div均匀分配空间
- python - Python:删除第一个花括号之外的所有字符
- c# - 如何在 Visual Studio 中不打开浏览器运行 URL?
- shiny - Rstudio 服务器在部署 APP 时遇到问题