【发布时间】:2020-08-26 10:43:11
【问题描述】:
我正在尝试创建一个 for 循环来根据条件组合列表中的列表。
我的数据集有 300 条宠物记录。有 3 种动物(例如狗、猫、鸟),每个动物出生年份的间隔(例如(1990、2000]、(2000、2004] 等)和友好仪表的间隔为每只动物评分(例如 (0,2]、(2, 4]、(4, 6] 等))
可以在此处找到数据集外观的示例图像: https://i.stack.imgur.com/YwbGN.png
我用来组合友好仪表评级的当前代码如下:
friendly_meter_combos = []
combo = []
for val in df['friendly_meter'].unique():
if len(combo) < 2:
combo.append(val)
else:
friendly_meter_combos.append(combo)
combo = []
combo.append(val)
这为我提供了
的示例结果friendly_meter_combos =
[[(0, 2], (2, 4]],
[(4, 6], (6, 8]],
[(8, 10], (2, 4]],
[(4, 6], (6, 8]],
...].
正如您在我打印的倒数第二行中看到的那样,数字从头开始 ([(8, 10], (2, 4]])。这是因为我现在处于不同的年份间隔为数据集中相同的动物类型而生。我想弄清楚如何重新开始代码以获得下面的输出
friendly_meter_combos =
[[(0, 2], (2, 4]],
[(4, 6], (6, 8]],
[(8, 10]],
[(2, 4], (4, 6]],
...].
任何帮助将不胜感激!谢谢!
【问题讨论】:
-
原始数据框是什么样的?你可以通过
df.head()得到这个 -
您可以发布您的数据样本吗? 5行就可以了
-
刚刚添加到带有数据图像的链接中。谢谢!
标签: python pandas list loops conditional-statements