下面是我的数据帧的一个示例.我在数据帧的列中的列表中有事件.我必须获取事件DateTime重复的事件的计数.我该怎么做呢? 我无法在事件列表中使用VALUE_COUNTS WITH. DeviceID|intertTime|事件

    |1234567   |1686261264478| [{'deviceDetailsDataModel': {'deviceId': '1234567'}, 'eventDateTime': '1686261000937', 'gpsDataModel': {'latitude': '38.0436213', 'longitude': '-90.5173831'}}, {'deviceDetailsDataModel': {'deviceId': '1234567'}, 'eventDateTime': '1686261001954', 'gpsDataModel': {'latitude': '38.0436203', 'longitude': '-90.5172008'}}, {'deviceDetailsDataModel': {'deviceId': '1234567'}, 'eventDateTime': '1686261002963', 'gpsDataModel': {'latitude': '38.043618', 'longitude': '-90.5169604'}}, {'deviceDetailsDataModel': {'deviceId': '1234567'}, 'eventDateTime': '1686261003971', 'gpsDataModel': {'latitude': '38.0436147', 'longitude': '-90.5167171'}}, {'deviceDetailsDataModel': {'deviceId': '1234567'}, 'eventDateTime': '1686261004989', 'gpsDataModel': {'latitude': '38.0436122', 'longitude': '-90.5164759'}}, {'deviceDetailsDataModel': {'deviceId': '1234567'}, 'eventDateTime': '1686261006007', 'gpsDataModel': {'latitude': '38.0436088', 'longitude': '-90.516233'}}, {'deviceDetailsDataModel': {'deviceId': '1234567'}, 'eventDateTime': '1686261007015', 'gpsDataModel': {'latitude': '38.0436047', 'longitude': '-90.5159967'}}, {'deviceDetailsDataModel': {'deviceId': '1234567'}, 'eventDateTime': '1686261008032', 'gpsDataModel': {'latitude': '38.0436036', 'longitude': '-90.515768'}}, {'deviceDetailsDataModel': {'deviceId': '1234567'}, 'eventDateTime': '1686261009049', 'gpsDataModel': {'latitude': '38.0436022', 'longitude': '-90.5155419'}}, {'deviceDetailsDataModel': {'deviceId': '1234567'}, 'eventDateTime': '1686261010068', 'gpsDataModel': {'latitude': '38.043602', 'longitude': '-90.5153184'}}, {'deviceDetailsDataModel': {'deviceId': '1234567'}, 'eventDateTime': '1686261011083', 'gpsDataModel': {'latitude': '38.0436021', 'longitude': '-90.5150956'}}, {'deviceDetailsDataModel': {'deviceId': '1234567'}, 'eventDateTime': '1686261012094', 'gpsDataModel': {'latitude': '38.0436028', 'longitude': '-90.5148754'}}, {'deviceDetailsDataModel': {'deviceId': '1234567'}, 'eventDateTime': '1686261013110', 'gpsDataModel': {'latitude': '38.0436024', 'longitude': '-90.5146568'}}, {'deviceDetailsDataModel': {'deviceId': '1234567'}, 'eventDateTime': '1686261014120', 'gpsDataModel': {'latitude': '38.0436006', 'longitude': '-90.5138385'}}, {'deviceDetailsDataModel': {'deviceId': '1234567'}, 'eventDateTime': '1686261015136', 'gpsDataModel': {'latitude': '38.0435985', 'longitude': '-90.5142199'}}, {'deviceDetailsDataModel': {'deviceId': '1234567'}, 'eventDateTime': '1686261016146', 'gpsDataModel': {'latitude': '38.0435974', 'longitude': '-90.514005'}}, {'deviceDetailsDataModel': {'deviceId': '1234567'}, 'eventDateTime': '1686261017165', 'gpsDataModel': {'latitude': '38.0435972', 'longitude': '-90.51379'}}, {'deviceDetailsDataModel': {'deviceId': '1234567'}, 'eventDateTime': '1686261018172', 'gpsDataModel': {'latitude': '38.0435965', 'longitude': '-90.513576'}}, {'deviceDetailsDataModel': {'deviceId': '1234567'}, 'eventDateTime': '1686261019191', 'gpsDataModel': {'latitude': '38.0435963', 'longitude': '-90.5133605'}}, {'deviceDetailsDataModel': {'deviceId': '1234567'}, 'eventDateTime': '1686261020209', 'gpsDataModel': {'latitude': '38.0435954', 'longitude': '-90.5131474'}}, {'deviceDetailsDataModel': {'deviceId': '1234567'}, 'eventDateTime': '1686261021215', 'gpsDataModel': {'latitude': '38.0435946', 'longitude': '-90.5129359’}}]|
**second row**
|456789   |1686261264478| [{'deviceDetailsDataModel': {'deviceId': '456789'}, 'eventDateTime': '1686261000937', 'gpsDataModel': {'latitude': '38.0436213', 'longitude': '-90.5173831'}}, {'deviceDetailsDataModel': {'deviceId': '456789'}, 'eventDateTime': '1686261001954', 'gpsDataModel': {'latitude': '38.0436203', 'longitude': '-90.5172008'}}, {'deviceDetailsDataModel': {'deviceId': '456789'}, 'eventDateTime': '1686261002963', 'gpsDataModel': {'latitude': '38.043618', 'longitude': '-90.5169604'}}, {'deviceDetailsDataModel': {'deviceId': '456789'}, 'eventDateTime': '1686261003971', 'gpsDataModel': {'latitude': '38.0436147', 'longitude': '-90.5167171'}}, {'deviceDetailsDataModel': {'deviceId': '456789'}, 'eventDateTime': '1686261004989', 'gpsDataModel': {'latitude': '38.0436122', 'longitude': '-90.5164759'}}, {'deviceDetailsDataModel': {'deviceId': '456789'}, 'eventDateTime': '1686261006007', 'gpsDataModel': {'latitude': '38.0436088', 'longitude': '-90.516233'}}, {'deviceDetailsDataModel': {'deviceId': '456789'}, 'eventDateTime': '1686261007015', 'gpsDataModel': {'latitude': '38.0436047', 'longitude': '-90.5159967'}}, {'deviceDetailsDataModel': {'deviceId': '456789'}, 'eventDateTime': '1686261008032', 'gpsDataModel': {'latitude': '38.0436036', 'longitude': '-90.515768'}}, {'deviceDetailsDataModel': {'deviceId': '456789'}, 'eventDateTime': '1686261009049', 'gpsDataModel': {'latitude': '38.0436022', 'longitude': '-90.5155419'}}, {'deviceDetailsDataModel': {'deviceId': '456789'}, 'eventDateTime': '1686261010068', 'gpsDataModel': {'latitude': '38.043602', 'longitude': '-90.5153184'}}, {'deviceDetailsDataModel': {'deviceId': '456789'}, 'eventDateTime': '1686261011083', 'gpsDataModel': {'latitude': '38.0436021', 'longitude': '-90.5150956'}}, {'deviceDetailsDataModel': {'deviceId': '456789'}, 'eventDateTime': '1686261012094', 'gpsDataModel': {'latitude': '38.0436028', 'longitude': '-90.5148754'}}, {'deviceDetailsDataModel': {'deviceId': '456789'}, 'eventDateTime': '1686261013110', 'gpsDataModel': {'latitude': '38.0436024', 'longitude': '-90.5146568'}}, {'deviceDetailsDataModel': {'deviceId': '456789'}, 'eventDateTime': '1686261014120', 'gpsDataModel': {'latitude': '38.0436006', 'longitude': '-90.5138385'}}, {'deviceDetailsDataModel': {'deviceId': '456789'}, 'eventDateTime': '1686261015136', 'gpsDataModel': {'latitude': '38.0435985', 'longitude': '-90.5142199'}}, {'deviceDetailsDataModel': {'deviceId': '456789'}, 'eventDateTime': '1686261016146', 'gpsDataModel': {'latitude': '38.0435974', 'longitude': '-90.514005'}}, {'deviceDetailsDataModel': {'deviceId': '456789'}, 'eventDateTime': '1686261017165', 'gpsDataModel': {'latitude': '38.0435972', 'longitude': '-90.51379'}}, {'deviceDetailsDataModel': {'deviceId': '456789'}, 'eventDateTime': '1686261018172', 'gpsDataModel': {'latitude': '38.0435965', 'longitude': '-90.513576'}}, {'deviceDetailsDataModel': {'deviceId': '456789'}, 'eventDateTime': '1686261019191', 'gpsDataModel': {'latitude': '38.0435963', 'longitude': '-90.5133605'}}, {'deviceDetailsDataModel': {'deviceId': '456789'}, 'eventDateTime': '1686261020209', 'gpsDataModel': {'latitude': '38.0435954', 'longitude': '-90.5131474'}}, {'deviceDetailsDataModel': {'deviceId': '456789'}, 'eventDateTime': '1686261021215', 'gpsDataModel': {'latitude': '38.0435946', 'longitude': '-90.5129359’}}]

推荐答案

您可以对列中的值eventDateTime进行"extract"运算,分解数据帧,然后使用.value_counts():

from ast import literal_eval

# apply literal eval if necessary:
df["events"] = df["events"].apply(literal_eval)

df["eventDateTime"] = df["events"].apply(lambda x: [d["eventDateTime"] for d in x])
df = df.explode("eventDateTime")

print(df["eventDateTime"].value_counts())

打印:

eventDateTime
1686261000937    2
1686261012094    2
1686261020209    2
1686261019191    2
1686261018172    2
1686261017165    2
1686261016146    2
1686261015136    2

...

编辑:如果要显示按deviceId分组的结果:

print(df.groupby("deviceId")["eventDateTime"].value_counts())

打印:

deviceId  eventDateTime
456789    1686261000937    1
          1686261001954    1
          1686261021215    1
          1686261020209    1
          1686261002963    1
          1686261003971    1
          1686261004989    1
          1686261006007    1
          1686261007015    1
          1686261008032    1
          1686261009049    1
          1686261010068    1
          1686261011083    1
          1686261012094    1
          1686261013110    1
          1686261014120    1
          1686261015136    1
          1686261016146    1
          1686261017165    1
          1686261018172    1
          1686261019191    1
1234567   1686261011083    1
          1686261002963    1
          1686261003971    1
          1686261004989    1
          1686261006007    1
          1686261007015    1
          1686261008032    1
          1686261009049    1
          1686261010068    1
          1686261012094    1
          1686261013110    1
          1686261014120    1
          1686261015136    1
          1686261016146    1
          1686261017165    1
          1686261018172    1
          1686261019191    1
          1686261020209    1
          1686261001954    1
          1686261000937    1
          1686261021215    1
Name: count, dtype: int64

Python相关问答推荐

在Python中添加期货之间的延迟

在Python中使用readline函数时如何向下行

当pip为学校作业(job)安装sourcefender时,我没有收到匹配的分发错误.我已经try 过Python 3.8.10和3.10.11

如何在Pygame中绘制右对齐的文本?

Snap 7- read_Area用于类似地址的变量

如何在不使用字符串的情况下将namedtuple属性传递给方法?

绘制系列时如何反转轴?

pyautogui.locateOnScreen在Linux上的工作方式有所不同

Python会扔掉未使用的表情吗?

运行终端命令时出现问题:pip start anonymous"

将图像拖到另一个图像

基于字符串匹配条件合并两个帧

当从Docker的--env-file参数读取Python中的环境变量时,每个\n都会添加一个\'.如何没有额外的?

在vscode上使用Python虚拟环境时((env))

无法连接到Keycloat服务器

Python中的变量每次增加超过1

在两极中过滤

Flash只从html表单中获取一个值

Pandas—MultiIndex Resample—我不想丢失其他索引的信息´

pandas fill和bfill基于另一列中的条件