python - 将数据框行(熊猫)与单独的数据框行匹配,并在第一列匹配时执行计算
问题描述
新手 python/coder 试图使数据记录器下载和计算作为一个辅助项目更顺畅。无论如何,我有两个数据框。第一个是“数据”,其中包含以下内容(为简单起见缩短了行数):
Logger Name Date and Time Battery Temp(C) Sensor Reading(dg) Sensor Temp(C) Array #
0 TDX 10/1/2021 13:35 2.93 15.59 8772.737 14.5 833
1 TDX 10/1/2021 13:36 2.93 15.59 8773.426 14.5 834
2 TDX 10/1/2021 13:36 2.93 15.59 8773.570 14.5 835
3 TDX 10/1/2021 13:37 2.93 15.59 8773.793 14.5 836
第二个是“param”,它的参数包含我用来进行计算的值:
Transducer_ID elevation_tom elevation_toc elevation_ground elevation_tos calculation gage_factor xd_zero_reading thermal_factor xd_temp_at_zero_reading piezo_elev piezo_downhole_depth
0 TDX NaN NaN 1000 NaN linear -0.04135 9138 0.003119 24.8 1600 400
1 Test NaN NaN 1000 NaN linear -0.18320 8997 -0.170100 22.6 800 200
现在我希望代码能够做的是在“数据”中创建一个名为“线性 P”的新列,该列基于使用来自两个数据帧的变量的计算进行填充:[digits_zero_digits - Sensor Reading(dg)] * abs(量具因子)。现在,如果“param”只有一个 Transducer ID 和与“data”相同的行数,这不是问题,但实际上它有很多具有不同 ID 的行。
所以我的问题是这个。实现我的目标的最佳方式是什么?是循环遍历列还是使用 pandas 库更有效?
提前致谢!
编辑:我正在寻找的输出是这个
Logger Name Date and Time Battery Voltage(v) Internal Temp(C) Sensor Reading(dg) Sensor Temp(C) Array # Linear P
0 TDX 10/1/2021 13:35 2.93 15.59 8772.737 14.5 833 15.103625
1 TDX 10/1/2021 13:36 2.93 15.59 8773.426 14.5 834 15.075135
2 TDX 10/1/2021 13:36 2.93 15.59 8773.570 14.5 835 15.069181
3 TDX 10/1/2021 13:37 2.93 15.59 8773.793 14.5 836 15.059959
解决方案
更有效的方法将基于我的经验:
- 使用( https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.join.html )加入两个数据框。
- 对结果数据框进行计算(
df["Linear P"] = df["Sensor Reading(dg)"] * ... ) .
这是我的过程的一个例子:
import pandas as pd
df1 = pd.DataFrame({'Names': ['a', 'a'],
'var1': [35, 15,],
'var2': [15, 40]})
df2 = pd.DataFrame({'Names1': ['a', 'E'],
'var3': [35, 15,],
'var4': [15, 40]})
final_df = df1.merge(df2, left_on='Names', right_on='Names1', how='left' )
final_df["Linear P"] = final_df["var3"] * final_df["var2"] - abs(final_df["var2"])
print(final_df)
推荐阅读
- reactjs - 使用 useEffect 反应添加事件 DOMContentLoaded
- assembly - 装配 MASM 程序未运行
- laravel - 在连接表中获取最新价格
- reactjs - 在不使用 redux 的情况下在 React Native 中导航结果
- javascript - Javascript RegEx:匹配缩进注释
- reactjs - react js中通过getDerivedStateFromProps调用状态变化后的方法
- reactjs - React hook 组件:在 Redux 中状态和数据中的 isLoading
- python - 如何在不打印索引或列名的 Jupyter Notebook 中打印 Panda DataFrame
- python-3.x - 需要说明:自定义构建函数引发 KeyError: 0
- jquery - 如何从 jQuery 表中的每个动态生成的单元格中获取数据