小编Jul*_*ian的帖子

Python:如何找到最频繁的元素组合?

机器提供熊猫数据帧中提供的故障代码。id识别机器,code是故障代码:

df = pd.DataFrame({
    "id": [1,1,1,1,1,2,2,2,2,3,3,3,3,3,3,4],
    "code": [1,2,5,8,9,2,3,5,6,1,2,3,4,5,6,7],
})
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

阅读示例:机器 1 生成了 5 个代码:1、2、5、8 和 9。

我想找出所有机器上最常见的代码组合。该示例的结果将类似于[2](3x)、[2,5](3x)、[3,5](2x) 等。

我怎样才能做到这一点?由于有大量数据,我正在寻找有效的解决方案。

以下是表示数据的另外两种方法(以防计算更容易):

pd.crosstab(df.id, df.code)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

df.groupby("id")["code"].apply(list)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

python combinations pandas

5
推荐指数
1
解决办法
241
查看次数

Python pandas to_datetime 工作不一致:为什么月份和日期混淆了?

使用 python pandas 包我运行

pd.to_datetime("23.01.2019 06:50:59")
Run Code Online (Sandbox Code Playgroud)

并得到预期结果

Timestamp('2019-01-23 06:50:59')
Run Code Online (Sandbox Code Playgroud)

然而,运行时

pd.to_datetime("11.01.2019 18:34:39")
Run Code Online (Sandbox Code Playgroud)

日和月混淆了,我得到

Timestamp('2019-11-01 18:34:39')
Run Code Online (Sandbox Code Playgroud)

预期是:Timestamp('2019-01-11 18:34:39')

关于为什么会发生这种情况以及如何避免这种情况有什么想法吗?谢谢!

datetime python-3.x pandas

2
推荐指数
1
解决办法
989
查看次数

Python Pandas:如何在小组内进行操作?

我有以下数据框:

df = pd.DataFrame(
    {
    "group": [1,1,1,2,2],
    "type": ["initial", "update", "update", "initial", "update"],
    "update time": ["2019-01-01 12:00:00", "2019-01-03 12:00:00", "2019-01-05 12:00:00", "2019-01-02 12:00:00", "2019-01-04 12:00:00"],
    "finish time": ["2019-01-07 12:00:00", "2019-01-07 12:00:00", "2019-01-08 12:00:00", "2019-01-05 12:00:00", "2019-01-05 12:00:00"]
    }
)

df["update time"] = pd.to_datetime(df["update time"])
df["finish time"] = pd.to_datetime(df["finish time"])

df
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

对于每一行,我想计算每个“组”的“初始”行的“完成时间”和“更新时间”之间的差。如示例中所示,“结束时间”可以更改。

所需的输出是:

在此处输入图片说明

我想这groupby是一个很好的起点,但是我无法弄清楚整个解决方案。有任何想法吗?

非常感谢!

python dataframe pandas pandas-groupby

1
推荐指数
2
解决办法
51
查看次数