python - 如何在具有匹配字符串的嵌套列表中查找索引的最小值和最大值?

标签 python

我有一个包含潮汐数据的文本文件,前几行是:

Thursday 4 January,11.58,0.38 meters

Thursday 4 January,16.95,0.73 meters

Thursday 4 January,23.68,0.02 meters

Friday 5 January,6.48,0.83 meters

Friday 5 January,12.42,0.33 meters

等并持续 5 天的数据。

我已将此数据转换为嵌套列表,因此它现在打印为:

[['Thursday 4 January', 11.58, 0.38], ['Thursday 4 January', 16.95, 0.73], ['Thursday 4 January', 23.68, 0.02], ['Friday 5 January', 6.48, 0.83], ['Friday 5 January', 12.42, 0.33].....]

以此类推文件中的每一行数据,每个列表的第一个索引是字符串中的日期,第二个和第三个索引是 float 。

对于每个具有匹配 [0] 索引(日期)的嵌套列表,我需要找到每个匹配嵌套列表 [2] 索引(潮汐高度)的最低和最高 float ,并将它们打印到屏幕上一天。

例如:

Thursday 4 January: 0.02 meters at lowest and 0.73 meters at highest
Friday 5 January: 0.33 meters at lowest and 0.83 meters at highest

由于列表已经按天排序,我想只计算匹配的名称然后手动比较它,例如对于“1 月 4 日星期四”,因为有 3 个,我只比较 split_tides[0-2][2] 并找到最小值和最大值,然后每天重复。但我认为一定有一种方法可以自动比较具有匹配字符串的嵌套列表。

感谢您的帮助。

编辑:文本文件的图像

enter image description here

最佳答案

下面是对你有帮助的片段

from pandas import DataFrame

data = [['Thursday 4 January', 11.58, 0.38], ['Thursday 4 January', 16.95, 0.73], ['Thursday 4 January', 23.68, 0.02],
         ['Friday 5 January', 6.48, 0.83], ['Friday 5 January', 12.42, 0.33]]

df = DataFrame.from_records(data)

df.columns = ["Date", "Value", "Height"]

df.groupby(['Date'])['Height'].max()
df.groupby(['Date'])['Height'].min()

输出:

日期 1 月 5 日星期五 0.83 1 月 4 日星期四 0.73

日期 1 月 5 日星期五 0.33 1 月 4 日星期四 0.02

关于python - 如何在具有匹配字符串的嵌套列表中查找索引的最小值和最大值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55428273/

相关文章:

Python Numpy 如何更改数组内的数据类型

python - 抽象方法上的装饰器

python - python 写入输出 csv 文件

python - 在 python 中使用 webkit 加载本地文件时出现问题

python - 有效地将长度为 n 的列表的 pandas 数据帧转换为 n 个数据帧

python - 使用 python setuptools/setup.py 编译和安装 C 可执行文件?

python - django Wagtail 嵌入视频未显示

python - 在 django 中与 elasticsearch 交互

python - python中无法pickled的多进程任务?

python - 将 python-docx 文档上传到 Azure blob 存储