python - 设置行的选择等于字符串列表
问题描述
我有一个数据框,我想输入到特定列中的行切片,其中输入是字符串列表 - 所以在每个选定的行中,我想要相同的字符串列表。
但是当我尝试这个时,我得到一个错误:
df['col'].iloc[0:460] = ['x', 'y', 'z', 'q']
ValueError: cannot set using a slice indexer with a different length than the value
当我做同样的事情时它工作得很好,但是我只有一个字符串而不是字符串列表。为什么它不接受列表作为输入?
解决方案
我们可以试试,不推荐使用带有列的update
链iloc
[]
df.update(pd.DataFrame({'col':[['x', 'y', 'z', 'q'] for x in range(0,460)]},index=df.index[:460]))
请注意,我通过 for 循环创建列表,因为您不希望每一行都有相同的副本,如果相同的对象然后更改列表中的每个值,所有其他行也会更改。
使用get_indexer
且仅与iloc
df.iloc[0:460, df.columns.get_indexer(['col'])[0]]=[['x', 'y', 'z', 'q'] for x in range(0,460)]
推荐阅读
- java - 如何使用 BufferedReader 进行本地化?
- service - OPA(作为主机级别的单独服务运行)策略在调用 API 时不会通过特使强制执行
- javascript - 为什么 console.log 和 document.write 输出不同的结果?
- react-native - react-router-native 和 react-navigation 之间的技术差异
- micropython - 如何在树莓派 pico 自动运行上制作 micropython 程序?
- swiftui - SwiftUI 列表与编辑模式下的两个函数
- c - 我需要颠倒我板上的 LED 颜色顺序
- php - PHP exec 和 shell_exec:没有输出
- python - python程序将jpg文件插入谷歌幻灯片演示文稿
- reactjs - 反应钩子,不会将选中的属性更改为复选框