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]
谢谢。
解决方案
使用.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)
推荐阅读
- c# - 如何使用 nim-lang 中的 ImportDll 在 DotNet Core 中调用字符串函数
- node.js - 在节点 js 中使用正则表达式拆分字符串
- scikit-learn - Python scikit svm“未安装或提供词汇”
- python - 如何让 Selenium 在等待用户输入时运行
- ruby-on-rails - 如何计算 ruby on rails 中的特定评分计数哈希?
- audio - FFMPEG:使用 filter_complex 添加和静音音频流
- ios - WKWebView WKWebsiteDataStore getAllCookies 不返回会话 Cookie
- javascript - 带有动态子组件的 ReactJS 自定义光标
- reactjs - 反应本机函数返回值未显示
- javascript - 向数组添加一个项目 - reactjs hooks