Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.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 - Fatal编程技术网

Python 无条件替换列中的所有值

Python 无条件替换列中的所有值,python,pandas,Python,Pandas,我有一个Pandas dataframe,其中有一列要无条件地替换为另一列的值 对于这个问题,让我们假设我不知道这个列有多长,也不想迭代它的值 使用.replace()是不合适的,因为我不知道该列中有哪些值:我希望无条件地替换所有值 使用df.loc[,]是不合适的,因为没有行选择逻辑:我想要所有的行并简单地写入True(如data.loc[True,'ColumnName']=new_value)返回KeyError(True,)。我尝试了data.loc[1,'ColumnName']=ne

我有一个Pandas dataframe,其中有一列要无条件地替换为另一列的值

对于这个问题,让我们假设我不知道这个列有多长,也不想迭代它的值

使用
.replace()
是不合适的,因为我不知道该列中有哪些值:我希望无条件地替换所有值

使用
df.loc[,]
是不合适的,因为没有行选择逻辑:我想要所有的行并简单地写入True(如
data.loc[True,'ColumnName']=new_value
)返回
KeyError(True,)
。我尝试了
data.loc[1,'ColumnName']=new_value
,它可以工作,但看起来确实是个糟糕的解决方案

如果我知道
data['ColumnName']
len()
,我可以创建一个这样大小的数组,用我的
new\u值的尽可能多的时间来填充,然后简单地用该数组替换该列。10行代码来做一些比需要1行代码(有条件地这样做)更简单的事情:这也是不好的


如何在一行中告诉熊猫:
ColumnName
中的所有值现在都是
new\u value
?我不相信有任何方法可以告诉熊猫不要用条件来打扰我。

正如我在评论中解释的,你不需要创建数组。 假设您有
df

  InvoiceNO Month  Year Size
0         1     1     2    7
1         2     1     2    8
2         3     2     2   11
3         4     3     2    9
4         5     7     2  8.5
..您想将
InvoiceNO
中的所有值更改为
1234

df['InvoiceNO'] = 1234
输出:

   InvoiceNO Month  Year Size
0       1234     1     2    7
1       1234     1     2    8
2       1234     2     2   11
3       1234     3     2    9
4       1234     7     2  8.5
输出是

  num1  num2
0     3     3
1     5     5
2     9     9
3     9     9
4    14    14
5     1     1


   num1  num2
0   100     3
1   100     5
2   100     9
3   100     9
4   100    14
5   100     1


  num1  num2
0   Hi     3
1   Hi     5
2   Hi     9
3   Hi     9
4   Hi    14
5   Hi     1

数据['ColumnName']=新值
?否。df['ColumnName']=新的_值。复数的这需要一个大小正确的数组。我只有值,没有数组。我可以创建数组new_values=[new value,new value,new value],但是。。。如果只有一个值,为什么还要创建数组呢?将
new_值
指定给序列会自动确保序列对象的每个元素都用新值更新。您在什么样的环境中工作?这是一个看起来很奇怪的语法错误,@VishnuKunchur的答案正是解决这个问题的方法。在将所有这些片段整合到生产中之前,使用Jupyter笔记本测试并记录您的代码。
  num1  num2
0     3     3
1     5     5
2     9     9
3     9     9
4    14    14
5     1     1


   num1  num2
0   100     3
1   100     5
2   100     9
3   100     9
4   100    14
5   100     1


  num1  num2
0   Hi     3
1   Hi     5
2   Hi     9
3   Hi     9
4   Hi    14
5   Hi     1