python - Python:是否有一个循环函数来总结这一点?
问题描述
我正在我的数据框中创建一个名为第 3 列的新列。此列需要从 0 开始,然后第 3 列应该 = 第 2 列 + 第 3 列的先前结果(上方)。对于 x=,代码需要如下所示1 到 x=1000,但总结如下:
df.at[0,'column3']=0
x=1
df.at[x,'column3']=df.at[x,'column2'] + df.at[x-1,'column3']
x=2
df.at[x,'column3']=df.at[x,'column2'] + df.at[x-1,'column3']
x=3
df.at[x,'column3']=df.at[x,'column2'] + df.at[x-1,'column3']
........
x=1000
df.at[x,'column3']=df.at[x,'column2'] + df.at[x-1,'column3']
当我单独输入上述内容时,它可以工作,但是当我尝试这个时:
for x in range(1,1000):
df.at[x,'column3']=df.at[x,'column2'] + df.at[x-1,'column3']
它给了我错误'只能将str(不是“numpy.int64”)连接到str'。数据框中的所有值都是数字 (0-10),并且没有 NaN 值。
解决方案
import pandas as pd
df = pd.DataFrame({'column2' : list(range(1, 1001))})
df['column3'] = df['column2']
df.loc[0, 'column3'] = 0
df['column3'] = df['column3'].rolling(2, min_periods=1).sum()
df
找这个?
推荐阅读
- linux - 安装作曲家(权限被拒绝) Symfony
- eclipse-hono - 将 Eclipse Hono 连接到同上 - "description":"检查是否设置了所有必需的 JSON 字段。"},"status":400}" 错误
- chef-infra - Chef [version-13.0.17] - 错误:无法将报告数据发布到服务器 (HTTP 400)
- java - Java Selenium ChromeDriver 程序在我的机器上运行很快,但在其他机器上运行缓慢
- regex - Python 正则表达式:Findall 组数最多
- javascript - 如何在 Node.js 中使用第二个构造函数的变量?(使用导入/导出)
- google-apps-script - 脚本 onForm 提交触发器无法正常工作
- python - 由于 Error=H10,Flask App 在通过 Heroku 部署时导致应用程序错误
- python - 编写一组 Dicom 图像
- json - 从嵌套的 json 中删除反斜杠