python - 根据熊猫数据框的字段计算范围
问题描述
我有一个熊猫数据框
import pandas as pd
import numpy as np
d = pd.DataFrame({
'col': ['A', 'B', 'C', 'D'],
'start': [1, 4, 6, 8],
'end': [4, 9, 10, 12]
})
我正在尝试根据开始和结束字段计算范围字段,以便它的值是
[1, 2, 3, 4]
[4, 5, 6, 7, 8, 9]
[6, 7, 8, 9, 10]
[8, 9, 10, 11, 12]
我尝试了以下选项
d['range_'] = np.arange( d.start, d.end, 1)
d['range_'] = range(d['start'], d['end'])
但得到以下错误
ValueError:Series 的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。
TypeError:“系列”对象不能解释为整数<-第二次尝试
任何帮助,将不胜感激
谢谢
解决方案
试试这个:
d.apply(lambda x: np.arange(x['start'], x['end']+1), axis=1)
输出:
0 [1, 2, 3, 4]
1 [4, 5, 6, 7, 8, 9]
2 [6, 7, 8, 9, 10]
3 [8, 9, 10, 11, 12]
dtype: object
注意: np.arange
并且range
不是为接受 pd.Series 而设计的,因此您可以使用 apply rowwise 来创建范围。
推荐阅读
- php - 如果选择了视频,则更新数据库值?
- sql - DELETE 语句与 REFERENCE 约束冲突,级联删除
- sql - 如何编写查询以结合编码获取数据计数
- c++ - 如何从 std::exception 到 std::nested_exception 的 dynamic_cast?
- eclipse - 带有 Git 的 PHP Eclipse - [git NO-HEAD]
- vba - 使用新的 MyTestableMacro .Run - 它有什么作用?
- ios - Alamofire 上传带参数的照片
- javascript - 如何在散景热图中获取点击位置的标签
- javascript - javascript tofixed小数位不起作用
- firebase - Firestore 控制台 - 文档大小限制