Python航向位置不适用于变量

2024-10-01 17:22:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我对Python,尤其是熊猫还不太熟悉。我有一个名为KeyRow的数据帧,它来自一个更大的数据框:

KeyRow=df.loc[df['Order'] == UniqueOrderName[i]]

然后我做一个嵌套循环

for i in range (0,len(PersonNum)): print(KeyRow.loc[KeyRow['Aisle'] == '6', 'FixedPill'])

因此,它似乎只在放置常量时有效,而如果我使用PersonNum[0]而不是“6”,即使这两个值是相等的,它似乎不起作用。当我使用PersonNum[I]时,这是我得到的输出:

^{pr2}$

如果我用“x”,我会得到一个理想的结果:

15    5
Name: FixedPill, dtype: object

提前谢谢你的帮助。在


Tags: 数据indfforlenorderrangeloc
1条回答
网友
1楼 · 发布于 2024-10-01 17:22:23

有点不清楚你想通过这些问题达到什么目的。如果您希望过滤一个数据帧,那么我建议您不要以迭代的方式进行过滤。您应该充分利用.loc的切片功能。举个例子:

df = pd.DataFrame([[1,2,3], [4,5,6],
                   [1,2,3], [2,5,6],
                   [1,2,3], [4,5,6],
                   [1,2,3], [4,5,6]], 
                  columns=["A", "B", "C"])
df.head()

    A   B   C
0   1   2   3
1   4   5   6
2   1   2   3
3   2   5   6
4   1   2   3

假设您有一个PersonNum列表,您想用它来定位列表所在的特定字段PersonNum = [1, 2]。通过执行以下操作,可以一步分割数据帧:

^{pr2}$

它将返回一个熊猫系列和

df.loc[df["A"].isin(PersonNum), "B"].to_frame()

返回一个新的数据帧。使用.loc比迭代方法要快得多。在

相关问题 更多 >

    热门问题