Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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 如何使用pandas更改colunm项的值?_Python_Pandas_Dataframe - Fatal编程技术网

Python 如何使用pandas更改colunm项的值?

Python 如何使用pandas更改colunm项的值?,python,pandas,dataframe,Python,Pandas,Dataframe,这是我关于stackoverflow的第一个问题 我正在实现一个机器学习分类算法,我想将它推广到任何目标类在最后一列中的输入数据集。为此,我希望使用python中的pandas修改该列的所有值,而不需要知道每一列或每一行的名称 例如,假设我加载了一个数据集: dataset = pd.read_csv('random_dataset.csv') 假设最后一列包含以下数据: 0 dog 1 dog 2 cat 3 dog 4 cat 我想将每个“dog”外观更改为1,将每个

这是我关于stackoverflow的第一个问题

我正在实现一个机器学习分类算法,我想将它推广到任何目标类在最后一列中的输入数据集。为此,我希望使用python中的pandas修改该列的所有值,而不需要知道每一列或每一行的名称

例如,假设我加载了一个数据集:

dataset = pd.read_csv('random_dataset.csv')
假设最后一列包含以下数据:

0   dog
1   dog
2   cat
3   dog
4   cat
我想将每个“dog”外观更改为1,将每个cat外观更改为0,以便该列看起来:

0   1
1   1
2   0
3   1
4   0
我发现了一些使用熊猫改变特定细胞值的方法,但是对于这种情况,什么是最好的方法呢

我非常感谢您的回答。

根据要求使用并映射值:

df['col_name'] = df['col_name'].map({'dog' : 1 , 'cat': 0})
或者->使用(将对象编码为枚举类型)->如果要分配随机数值

df['col_name'] = df['col_name'].factorize()[0]
输出: 根据要求使用并映射值:

df['col_name'] = df['col_name'].map({'dog' : 1 , 'cat': 0})
或者->使用(将对象编码为枚举类型)->如果要分配随机数值

df['col_name'] = df['col_name'].factorize()[0]
输出: 您可以使用:

df['column']=pd.Categorical(df['column'])代码
您也可以为此使用内置功能:

df['column']=df['column'].astype('category').cat.code
您可以使用:

df['column']=pd.Categorical(df['column'])代码
您也可以为此使用内置功能:

df['column']=df['column'].astype('category').cat.code

谢谢!为了实现我想要的(在不知道列名的情况下获得结果),我必须添加一些额外的代码,但是使用map是一个很好的技巧。谢谢!为了实现我想要的(在不知道列名的情况下获得结果),我必须添加一些额外的代码,但是使用map是一个很好的技巧。这很简单!问题是结果不是二进制的,但是通过一些额外的代码,我们可以解决它。这很简单!问题是结果不是二进制的,但是通过一些额外的代码,我们可以解决它。