Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 更改列中的类别?_Python_Pandas_For Loop_Iterator_Iteration - Fatal编程技术网

Python 更改列中的类别?

Python 更改列中的类别?,python,pandas,for-loop,iterator,iteration,Python,Pandas,For Loop,Iterator,Iteration,我在熊猫身上试验iter的功能 1-我从熊猫专栏中列出了一个清单 第1条: 第1部分: 2-然后我想迭代列表中的元素,用PASS替换区域0 在第2部分: 第2部分: 我知道还有其他方法可以替换列中的值。但是,我想通过将数据帧转换为列表,然后迭代元素来解决这个问题 在第3部分: 第3部分: 正如我所说的,我正在试验,我看不到任何原因说明in_2的for循环不起作用。主要问题是赋值需要=,而不是等式运算符= 由于循环中的变量i是标量,而不是指向原始列表中元素的引用,因此必须附加到新列表。相反,您可以

我在熊猫身上试验iter的功能

1-我从熊猫专栏中列出了一个清单

第1条:

第1部分:

2-然后我想迭代列表中的元素,用PASS替换区域0

在第2部分:

第2部分:

我知道还有其他方法可以替换列中的值。但是,我想通过将数据帧转换为列表,然后迭代元素来解决这个问题

在第3部分:

第3部分:


正如我所说的,我正在试验,我看不到任何原因说明in_2的for循环不起作用。

主要问题是赋值需要
=
,而不是等式运算符
=

由于循环中的变量
i
是标量,而不是指向原始列表中元素的引用,因此必须附加到新列表。相反,您可以使用
枚举
并修改现有列表:

for idx, val in enumerate(df_area_code_iter_list):
    if val == "Area 0":
        df_area_code_iter_list[idx] = "PASS THIS"
或者,更像python,使用列表理解:

new_list = [x if x != 'Area 0' else 'PASS THIS' for x in df_area_code_iter_list]

非常感谢你。实际上,只需将双等分更改为单等分就可以解决问题。@mcagriardic,当然,我已经更新了,向您展示了一种修改现有列表的方法。
new_column = []

for i in df_area_code_iter_list:
    if i == "Area 0":
       i == "PASS THIS"
    new_column.append(i)

new_column
['Area 1',
 'Area 2',
 'Area 1',
 ...
 'Area 0']
df["Area Code"] = df["Area Code"].replace(to_replace ="Area 0", value = 
"PASS THIS")
df["Area Code"]
0          Area 1
1          Area 2
2          Area 1
3          Area 1
4       PASS THIS
5       PASS THIS
6       PASS THIS
...     ....
for idx, val in enumerate(df_area_code_iter_list):
    if val == "Area 0":
        df_area_code_iter_list[idx] = "PASS THIS"
new_list = [x if x != 'Area 0' else 'PASS THIS' for x in df_area_code_iter_list]