python - 更新从函数获得的 pandas 数据帧值
问题描述
我的目标是用函数产生'df1'
的新值更新我的数据框。'df2'
这是一个更复杂的脚本的简化,我不能免除自己使用两个函数。
import pandas as pd
def new_df2(i):
d2 = {'col1': [i, i-1], 'col2': [i+1, i+2]}
df2 = pd.DataFrame(data=d2)
merge_df(df1, df2)
def merge_df(df1, df2):
df1 = df1.append(df2)
d1 = {'col1': [5, 6], 'col2': [7, 8]}
df1 = pd.DataFrame(data=d1)
for i in range(1,3,1):
new_df2(i)
我的结果:
print(df1)
col1 col2
0 5 7
1 6 8
预期结果:
print(df1)
col1 col2
0 5 7
1 6 8
0 1 2
1 0 3
0 2 3
1 1 4
解决方案
像这样的东西会起作用:
In [232]: d1 = {'col1': [5, 6], 'col2': [7, 8]}
In [233]: df1 = pd.DataFrame(data=d1)
In [234]: df = pd.DataFrame()
In [235]: def new_df2(i):
...: d2 = {'col1': [i, i-1], 'col2': [i+1, i+2]}
...: df2 = pd.DataFrame(data=d2)
...: return df2
...:
In [236]: def merge_df(df1, df2):
...: df1 = df1.append(df2)
...: return df1
...:
In [237]: for i in range(1,3,1):
...: df2 = new_df2(i)
...: df = df.append(df2)
...:
In [238]: df1 = merge_df(df1,df)
In [239]: df1
Out[239]:
col1 col2
0 5 7
1 6 8
0 1 2
1 0 3
0 2 3
1 1 4
推荐阅读
- python - 如何在熊猫数据框中使用条件颜色绘制折线图
- firebase - firebase 功能最近未能在 macos 上部署
- c# - MySqlDataReader 不会从具有函数的视图中读取信息架构
- c# - Blazor 文件夹授权不起作用,允许未登录的用户查看内容
- typescript - 如何强类型返回对象属性的函数?
- javascript - 是否可以使用 amCharts5:简单饼图,但不能使用百分比?
- javascript - 如何在 Node.js 中使用 gs:// URI 从 Google Cloud Storage 下载对象?
- get - HTTP::Tiny 无法检索某些 WEB 站点,但可以与其他站点一起使用。代码片段很简单,但我不知道为什么它会失败
- asp.net-core - 将 ASP.NET Core 应用程序部署到 plesk onyx 17.8.11
- python - 我需要帮助优化此迭代