python-3.x - 当数据框列由列表组成时,如何从列表中提取特定位置的值
问题描述
我在熊猫数据框中有两列,两列中的每一行都有一个值列表。首先,我想从一列的列表中定位某个值,并从另一列的列表中提取相同位置的相应值。例如,我的数据如下所示:
Address Value
[abcd, jkel, swkg] [30, 25, 87]
[eszl, pqks, jkel] [21, 35, 42]
[jkel, sqzg] [11, 34]
当地址为“jkel”时,我想从值列表中提取相应的值。例如,地址列第一行的列表在列表的第二个位置有“jkel”。该地址对应的值将是值列表中的第二项,即 25。最终,我想创建一个如下所示的新数据框。
Address Value
jkel 25
jkel 42
jkel 11
我试图找到地址列包含“jekl”的所有行,并使用 index() 函数提取相关值。但不幸的是,我无法弄清楚整个事情。
df = df[df["Address"].str.contains("jekl")]
new_value = []
for row in df:
idx = df['Address"].index("jekl")
a = df['Value'][idx]
有人可以帮忙吗?谢谢。
解决方案
尝试分解数据和查询:
pd.DataFrame({'Address': df['Address'].explode().
'Value': df['Value'].explode()
}).query('Value=="jkel"')
推荐阅读
- javascript - 反应网格布局。网格项值的动态更新
- nginx - Flask CORS 在生产中不能与 Nginx 一起工作,但在没有 Nginx 的情况下在本地工作
- java - 比较java中二叉搜索树中节点的两个值
- scala - 当我的案例类上有 Option[Instant] 属性时,我的 JSON 读取未编译
- db2 - 如何为包含数值的给定文本实现千位分隔符?Cast 和 Varchar_format 不起作用
- java - GUI 中的光标让用户擦除界面上显示的文本
- discord - Discord.js 降价适用于 Iphone 和计算机,而不是 android
- c# - Azure 函数事件中心输出绑定在部署时不起作用
- c - 计算最大值和最小值
- c - _Alignas(N)、[[gnu::aligned(N)]] 和 __attribute__((aligned(N))) 在声明中的位置