如何匹配整个数据框中的元素和 return 特定匹配元素的整行或索引?
How do you match an element in the entire dataframe and return the entire row or index of that particular matched element?
此数据框中的每一行代表一个订单,executionStatus.x 包含有关订单状态的一些信息。
那些 executionStatus.x 列是由 flatten_json 自动创建的
amirziai,取决于有多少参数。因此,如果一个订单有 3 个状态,如第 0 行,则最多为 executionStatus.2。由于第 1 行和第 2 行只有一个状态,因此它只有 executionStatus.0 中的值。
我的问题是我无法匹配 "ORDER_FULFILLED",因为我不知道会有多少个 executionStatuses,我需要像 df[df['executionStatus.0'] 这样写出准确的列名.str.match('ORDER_FULFILLED')].
executionStatus.0 executionStatus.1 executionStatus.2 \
0 REQUESTED_AMOUNT_ROUNDED MEOW ORDER_FULFILLED
1 ORDER_FULFILLED NaN NaN
2 NOT_AN_INFUNDING_LOAN NaN NaN
investedAmount loanId requestedAmount OrderInstructId
0 50.0 22222 55.0 55555
1 25.0 33333 25.0 55555
2 0.0 44444 25.0 55555
有没有办法在整个数据框中获取与 "ORDER_FULFILLED" 元素匹配的整行或索引?
理想情况下,匹配的数据框应如下所示,因为第 0 行和第 1 行在 executionStatuses 中有 ORDER_FULFILLED 而第 3 行没有,因此应将其排除。谢谢!
investedAmount loanId requestedAmount OrderInstructId
0 50.0 22222 55.0 55555
1 25.0 33333 25.0 55555
使用 df.filter()
获取包含带有布尔掩码的 executionStatus
的相似列:
df[df.filter(like='executionStatus').eq('ORDER_FULFILLED').any(axis=1)]
executionStatus.0 executionStatus.1 executionStatus.2 \
0 REQUESTED_AMOUNT_ROUNDED MEOW ORDER_FULFILLED
1 ORDER_FULFILLED NaN NaN
investedAmount loanId requestedAmount OrderInstructId
0 50 22222 55 55555
1 25 33333 25 55555
如果要从输出中删除 execution
列,请使用:
df.loc[df.filter(like='executionStatus').eq('ORDER_FULFILLED').any(axis=1),\
df.columns.difference(df.filter(like='executionStatus').columns)
此数据框中的每一行代表一个订单,executionStatus.x 包含有关订单状态的一些信息。
那些 executionStatus.x 列是由 flatten_json 自动创建的 amirziai,取决于有多少参数。因此,如果一个订单有 3 个状态,如第 0 行,则最多为 executionStatus.2。由于第 1 行和第 2 行只有一个状态,因此它只有 executionStatus.0 中的值。
我的问题是我无法匹配 "ORDER_FULFILLED",因为我不知道会有多少个 executionStatuses,我需要像 df[df['executionStatus.0'] 这样写出准确的列名.str.match('ORDER_FULFILLED')].
executionStatus.0 executionStatus.1 executionStatus.2 \
0 REQUESTED_AMOUNT_ROUNDED MEOW ORDER_FULFILLED
1 ORDER_FULFILLED NaN NaN
2 NOT_AN_INFUNDING_LOAN NaN NaN
investedAmount loanId requestedAmount OrderInstructId
0 50.0 22222 55.0 55555
1 25.0 33333 25.0 55555
2 0.0 44444 25.0 55555
有没有办法在整个数据框中获取与 "ORDER_FULFILLED" 元素匹配的整行或索引?
理想情况下,匹配的数据框应如下所示,因为第 0 行和第 1 行在 executionStatuses 中有 ORDER_FULFILLED 而第 3 行没有,因此应将其排除。谢谢!
investedAmount loanId requestedAmount OrderInstructId
0 50.0 22222 55.0 55555
1 25.0 33333 25.0 55555
使用 df.filter()
获取包含带有布尔掩码的 executionStatus
的相似列:
df[df.filter(like='executionStatus').eq('ORDER_FULFILLED').any(axis=1)]
executionStatus.0 executionStatus.1 executionStatus.2 \
0 REQUESTED_AMOUNT_ROUNDED MEOW ORDER_FULFILLED
1 ORDER_FULFILLED NaN NaN
investedAmount loanId requestedAmount OrderInstructId
0 50 22222 55 55555
1 25 33333 25 55555
如果要从输出中删除 execution
列,请使用:
df.loc[df.filter(like='executionStatus').eq('ORDER_FULFILLED').any(axis=1),\
df.columns.difference(df.filter(like='executionStatus').columns)