python - 如何操作多个数据帧并将值存储在新数据帧中
问题描述
我有以下情况:
我有多个看起来像这样的表:
table1 = pd.DataFrame([[0,1],[0,1],[0,1],[0,1],[0,1]], columns=['v1','v2'])
我有一个数据框,每个元素都引用这些表,如下所示:
df = pd.DataFrame([table1, table2, table3, table4], columns=['tablename'])
我需要在 df 中创建一个新列,其中包含每个表的值,我从中获得np.polyfit(table1['v1'],table1['v2'],1)
我试图做以下事情
for x in df['tablename']:
df.loc[:,'fit_result'] = np.polyfit(x['v1'],x['v2'],1)
但它返回我
TypeError: string indices must be integers
有没有办法做到这一点?还是我在写一些没有意义的东西?
obs:事实上,这些表是巨大的,包含多于两列。
解决方案
你可以试试这样的
import numpy as np
import pandas as pd
table1 = pd.DataFrame([[0.0,0.0],[1.0,0.8],[2.0,0.9],[3.0,0.1],[4.0,-0.8],[5.0,-1.0]], columns=['table1_v1','table1_v2'])
df = pd.DataFrame([['some','random'],['values','here']], columns=['example_1','example_2'])
def fit_result(v1,v2):
return np.polyfit(v1, v2, 1)
df['fit_result'] = df.apply(lambda row: fit_result(table1['table1_v1'].values,table1['table1_v2'].values), axis=1)
df.head()
输出
example_1 example_2 fit_result
0 some random [-0.3028571428571428, 0.7571428571428572]
1 values here [-0.3028571428571428, 0.7571428571428572]
您只需要对所有数据帧执行此操作,并在最后将它们全部连接起来
df_col = pd.concat([df1,df2], axis=1) ( https://www.datacamp.com/community/tutorials/joining-dataframes-pandas )
推荐阅读
- java - 使用 RestEasyWebTarget 从 API 获取错误请求
- c# - 确定 ICollection 中的所有项目是否
不包含在列表中 使用 Linq 查询 - javascript - 在 D3.js 中创建双向图
- kubernetes - 如何使用新的 values.yaml 升级 helm chart 并保留以前的部署数据?
- element - 页面上的多个间隔,如何仅在特定元素上清除间隔
- excel - Excel 电源视图无法在我的计算机上运行
- sapui5 - 在 SAPUI5 页眉中设计我的区域
- android - Android和IOS应用跨平台开发
- lambda - 溪流
>> 如何从 MyClass 获取值或检查 List 是否为空 - r - 将 csv 导入 r 时,a-hat 是什么意思(以及如何摆脱它)?