python-3.x - 有没有办法将最后一列第一个输出值值作为输入在数据框中的第一列第二个数据中使用其他列数据计算
问题描述
我有一个包含五列数据值的 csv 文件。
五列是['A','B','C','D','time']
这里我的“D”列是输出列,“A”是我的第一列。
所以我想应用“D”列中的值表示的值应该是“A”列中的下一个输入,时间范围为一小时。
每隔一小时,一小时的值就会改变。
我写了一个代码并且值正在显示,但我的最后一列输出不是我的第一列第二个输入。
在这里,我上传了我的 coda 和 csv 文件。谁能帮我解决这个问题。
data = pd.read_csv('data20.csv')
data = pd.DataFrame(data,columns=['time', 'A','B','C','D'])
for i in range(1, len(data)):
data.loc[i+1,'A'] = data.loc[i, 'D'] + data.loc[i, 'B'] - data.loc[i, 'C']
在我的 csv 文件中,我为行着色。然后在两列中表示相同的颜色意味着在两列中表示相同的值。
在我的 csv 中,A 列中的第一行表示 63,我的输出是 D 列中的 63。D 列是我想要的输出。然后在 A 列的第二行中,它表示为 0。但我想将先前的输出值(63)作为 A 列输入应用到第二行。然后该值将按 B 列计算并按 C 列减少,然后我想要的输出值为 60 表示在 D 列中。所以像这样的过程还会继续。所以在 A 列中的 0 值替换为 D 列中的先前输出值。
解决方案
IIUC,您需要使用来自 'D': 的值填充列 'A' df['A'] = df['D'].shift(1)
。
但是,仍然不知道为什么您自己的代码是错误的。
推荐阅读
- discord.js - 我正在尝试让我的机器人使用频道 ID 将消息发送到特定频道
- html - 将溢出的内容动态移动到新容器
- python - 函数在使用 ipywidgets 事件调用之前一直有效
- linux - 如何使用命令行 Linux 将本地文件更新到 Google Drive
- android - 如何约束和包含?
- r - 重新排序列/图例
- browser - 我如何在 chrome 中调用浏览器的这一部分?
- javascript - React hook useEffect 永远/无限循环连续运行,复制从 APi 获取的数据,
- node.js - 如何使用备注将markdown解析为json
- javascript - 在特定位置单击时创建输入字段