python - 具有“loc”和“to_frame”的不同格式的数据帧
问题描述
我在有时有一行的数据帧上运行应用函数,并且有两个数据帧源。一个是 .loc 的结果,一个是使用 to_frame() 转换为数据帧的系列。
两者的数据相同。它在一个以 f1 作为初始输入的递归函数中,然后在函数内部查询 df2 并再次调用函数。
df1 = row.to_frame()
df2 = df3.loc[df3.loc['colname']== value]
然后,它们通过与以下相同的应用功能:
another_df = df1_or_df2.apply (lambda row:function (row))
以上适用于 df1,但会为 df2keyerror: ('id', 'occurred at index id')
的 df2 引发错误。如果我添加axis=1
,那么它的工作原理。
我确实try, except
让它工作,因为它是一次性的,但现在需要提高速度。
你能说出为什么 df 的两种格式不同,或者我怎样才能更有效地做到这一点吗?
解决方案
我想to_frame()
按照我的意愿将系列转换为一行,但我认为它是为每一列制作一行。所以我做到了df1 = row.to_frame().transpose()
。现在它适用于他们两个。
为了提高效率,我在原始数据框中有一个属性来将数据划分为子集。所以,现在整个功能需要更少的时间。
谢谢你。
推荐阅读
- google-app-engine - Google pub/sub 的 IP 范围是多少?
- angular - canActivate 外的路由器:[AuthGuard] 不起作用
- angular - Angular 5 - 在组件中显示模块
- perl - 如何在 Perl 中合并从 sub 返回的两个哈希
- javascript - 遍历表行并禁用第二列中的输入
- textview - 在 nsTextView 中设置默认字体大小(不是字体名称)
- wordpress - WP_Query 不按标题排序
- java - 在 JUnit 参数化测试中使用枚举的所有值
- javascript - 如何访问 store 的 getter 中的模块状态?
- java - 如何使用嵌套列表反序列化 xml?