我遵循了这个示例Remove last N rows in data frame with the arbitrary number of rows,但它只删除了数据帧的最后50行,而不是数据帧中每个研究站点的最后50行。我有一个非常大的数据集,它有多个研究地点,每个研究地点都有多个深度,每个深度都有营养物质的浓度。 我只想删除每个桩号的最后50行深度。 例如,站点1有250个深度,站点2有1000个深度,站点3有150个深度 但要保持所有其他数据的一致性。 这似乎只是从数据帧中删除了最后50个,而不是每个站点中的最后50个…… df<- df[-seq(nrow(df),nrow(
这是我在这里上的最后一个问题的后续。
在上一篇文章中,我在@Reinderien的建议之后,按照以下方式提供了我的web刮刀代码:
fudan.py
from dataclasses import dataclass, asdict
from itertools import count
from typing import Dict, Iterable, Tuple, List
from bs4 import BeautifulSoup
from requests import Session, get
from datetime import date, datetime
import
我得到了一个包含多个列的数据帧,包括一个用户ID (id)和一个时间戳(startTime)。我想检查每个用户我的数据(df行)跨越了多少天。
我目前正在通过将df拆分为'id',然后在循环中为每个子集dfs计算以下内容:
days = len(df.startTime.dt.date.unique())
如何在不拆分数据帧的情况下更有效地执行此操作?我正在处理相当大的数据帧,我担心这将花费太多的时间。我已经研究了groupby函数,但我并没有深入研究。我试过这样的方法:
result = df.groupby('id').agg({'days'