gpt4 book ai didi

python - 箱线图 Pandas 数据

转载 作者:太空宇宙 更新时间:2023-11-04 05:08:59 26 4
gpt4 key购买 nike

DataFrame如下:

        ID1             ID2 
0 00:00:01.002 00:00:01.002
1 00:00:01.001 00:00:01.006
2 00:00:01.004 00:00:01.011
3 00:00:00.998 00:00:01.012
4 NaT 00:00:01.000
...
20 NaT 00:00:00.998

我想做的是为每个 ID 创建一个箱线图。根据我提供的数据集,可能有也可能没有多个 ID。现在我正在尝试为 2 个数据集解决这个问题。如果可能的话,我想要一个将所有数据都放在同一个箱线图上的解决方案,然后另一个将数据显示在每个 ID 自己的箱线图上的解决方案。

我对 pandas 很陌生(正在尝试学习它...),我只是对弄清楚这需要多长时间感到沮丧...这是我的代码...

deltaTime = pd.DataFrame() #Create blank df
for x in range(0, len(totIDs)):
ID = IDList[x]
df = pd.DataFrame(data[ID]).T
deltaT[ID] = pd.to_datetime(df[TIME_COL]).diff()
deltaT.boxplot()

非常简单,只是似乎无法按照我想要的方式为每个 ID 绘制箱线图。我不应该认为数据是由本地文件读取器提供给我的,该文件读取器获取多个复杂文件并将它们分类到按 ID 索引的数据字典中。

我正在运行 pandas 版本 0.14.0 和 python 版本 2.7.7

最佳答案

我不确定这在 0.14.0 版本中如何工作,因为最后一个是 0.19.2 - 我建议尽可能升级:

#sample data
np.random.seed(180)
dates = pd.date_range('2017-01-01 10:11:20', periods=10, freq='T')
cols = ['ID1','ID2']
df = pd.DataFrame(np.random.choice(dates, size=(10,2)), columns=cols)
print (df)
ID1 ID2
0 2017-01-01 10:12:20 2017-01-01 10:17:20
1 2017-01-01 10:16:20 2017-01-01 10:20:20
2 2017-01-01 10:18:20 2017-01-01 10:17:20
3 2017-01-01 10:12:20 2017-01-01 10:16:20
4 2017-01-01 10:14:20 2017-01-01 10:18:20
5 2017-01-01 10:18:20 2017-01-01 10:19:20
6 2017-01-01 10:17:20 2017-01-01 10:12:20
7 2017-01-01 10:13:20 2017-01-01 10:17:20
8 2017-01-01 10:16:20 2017-01-01 10:11:20
9 2017-01-01 10:13:20 2017-01-01 10:19:20

调用DataFrame.diff然后将 timedeltas 转换为 total_seconds :

df = df.diff().apply(lambda x: x.dt.total_seconds())
print(df)
ID1 ID2
0 NaN NaN
1 240.0 180.0
2 120.0 -180.0
3 -360.0 -60.0
4 120.0 120.0
5 240.0 60.0
6 -60.0 -420.0
7 -240.0 300.0
8 180.0 -360.0
9 -180.0 480.0

上次使用 DataFrame.plot.box

df.plot.box()

graph

您还可以检查docs .

关于python - 箱线图 Pandas 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43563530/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com