将多个值赋给数据帧中的不同单元格

2024-04-25 03:51:05 发布

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

这可能是一个简单的问题,但我找不到任何简单的方法。想象一下下面的数据帧:

df = pd.DataFrame(index=range(10), columns=range(5))

以及三个列表,其中包含我要更改的已定义数据帧的索引、列和值:

idx_list = [1,5,3,7]  # the indices of the cells that I want to change
col_list = [1,4,3,1]  # the columns of the cells that I want to change
value_list = [9,8,7,6]  # the final value of whose cells`

我想知道在pandas中是否有一个函数可以有效地执行以下操作:

for i in range(len(idx_list)):
    df.loc[idx_list[i], col_list[i]] = value_list[i] 

谢谢。你知道吗


Tags: columnsoftheto方法dfthatvalue
2条回答

使用.values

df.values[idx_list,col_list]=value_list
df
Out[205]: 
     0    1    2    3    4
0  NaN  NaN  NaN  NaN  NaN
1  NaN    9  NaN  NaN  NaN
2  NaN  NaN  NaN  NaN  NaN
3  NaN  NaN  NaN    7  NaN
4  NaN  NaN  NaN  NaN  NaN
5  NaN  NaN  NaN  NaN    8
6  NaN  NaN  NaN  NaN  NaN
7  NaN    6  NaN  NaN  NaN
8  NaN  NaN  NaN  NaN  NaN
9  NaN  NaN  NaN  NaN  NaN

或者另一种效率更低的方法

updatedf=pd.Series(value_list,index=pd.MultiIndex.from_arrays([idx_list,col_list])).unstack()
df.update(updatedf)

试试看数据框应用映射()函数,您可以使用lambda来执行所需的操作。你知道吗

相关问题 更多 >