我正在运行以下代码,但是python给出了一些以前从未给出过的奇怪错误:
for i in range(len(df)):
if df['event_name'][i] == 'subcategory_click':
df.at[i,'subcategory_navigation']=1
输入:
user_id event_name
10 psuedo_App_start
10 subcategory_click
10 subcategory_click
10 subcategory_click
10 product_search
10 product_search
10 product_search
所需的输出:
user_id event_name subcategory_navigation
10 psuedo_App_start 0
10 subcategory_click 1
10 subcategory_click 1
10 subcategory_click 1
10 product_search 0
10 product_search 0
10 product_search 0
答案 0 :(得分:0)
此错误似乎是说df
不包含名为'event_name'
的密钥。该错误也可能是由于i
中不存在df['event_name']
,但您似乎希望该集合是列表,而不是地图。
我认为您的逻辑存在潜在问题。您基于df
的长度进行迭代,但是随后在循环df['event_name']
中引用了另一个列表。我看不到这两个列表的长度应该在哪里相关。您可能想要for i in range(len(df['event_name'])
吗? -从您的代码来看,df
的长度似乎不是一个有价值的数量,因为它是一个映射,并且您是在明确引用该映射的键。
很难知道发生了什么,因为您没有向我们展示df
是什么。我建议您在调试器中运行代码,在该行上停止,然后查看df包含的内容。
答案 1 :(得分:0)
# pkg upgrade -n
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
Checking for upgrades (251 candidates): 100%
Processing candidates (251 candidates): 100%
The following 250 package(s) will be affected (of 0 checked):
Installed packages to be REMOVED:
ImageMagick-6.9.9.28_2,1
New packages to be INSTALLED:
xkeyboard-config: 2.24_1
...
Number of packages to be removed: 1
Number of packages to be installed: 9
Number of packages to be upgraded: 195
Number of packages to be reinstalled: 45
应该做的事
答案 2 :(得分:0)
尝试在if语句中切换['event_name']和[i]
答案 3 :(得分:0)
df.reset_index(inplace = True)..我在for循环之前使用了它,以某种方式起作用了