python - 迭代以获取长度列表
问题描述
给定一个数据框line
:
data = [[10, 10, 10,10,10,10,10,10], [10, 10, 10,10,10,10,10,10], [10, 10, 10,10,10,10,10,10]]
line = pd.DataFrame(data, columns = ['0', '0.1','1', '1.1','2', '2.1','3', '3.1'])
line
到目前为止我做了什么:
border_1 = line[['2','2.1']]
border_1 = border_1.rename(columns={'2': 'longitude', '2.1': 'latitude'})
border_1 = border_1.dropna()
我用[['2','2.1']]
. 现在我想对每对从 0 0.1 1 1.1 开始的夫妇做这件事,依此类推border_1
如何应用于整个数据框?
cols = line.columns.tolist()
for i in range(0, len(cols), 2):
border_1 = line[cols[i], cols[i+1]]
border_1 = border_1.rename(columns={cols[i]: 'longitude', cols[i+i]: 'latitude'})
border_1 = border_1.dropna()
KeyError: ('0', '0.1')
解决方案
您有两个语法错误:
首先,要获取多个列,您需要将它们用作列表:
for i in range(0, len(cols), 2):
border_1 = line[[cols[i], cols[i+1]]]
其次,一个简单的错字,但cols[i+i]
很快就超出了范围。
border_1 = border_1.rename(columns={cols[i]: 'longitude', cols[i+1]: 'latitude'})
推荐阅读
- php - 如何从自定义分类中访问帖子数组以便对其进行排序?
- java - 如何在 Java 中动态构造谓词
- reactjs - 具有 useState 的数组未更新 websocket 函数内的值
- python - 如何让 tensorflow-gpu v2 在带有 NVidia GPU 的 Windows 上运行
- git - 如何禁用有关 git 初始分支名称的 git 消息
- python - 我们如何在 Folium 中显示工具提示和弹出窗口
- sql - 如何加快使用 SELECT 中的子查询来计算值的查询?
- vue.js - Vue 与 Axios 下拉预填充
- vue.js - Vue - 我如何更新输入文本字段的默认值?
- python - 总结 collections.Counter 对象在 pandas 中使用`groupby`