【问题标题】:powerBI import grouped data using python scriptpowerBI使用python脚本导入分组数据
【发布时间】:2020-06-25 09:21:47
【问题描述】:

在 powerBI 中,我可以导入表单记录表。 该表单来自 Web 应用程序,每次更新表单时,都会在表格中添加一个新行。每个表单都有一个唯一的标识符。 因此,该表对于每个唯一标识符都有多行,并且对于每个更新都有一个日期戳。

在 powerBI 中使用 group by 我可以在日期戳上使用 min() 或 max() 过滤每个唯一标识符的第一条或最后一条记录上的表。 但是我想过滤每个唯一标识符的第二个日期戳。

我无法弄清楚如何在 powerBI 中执行此操作,因此我认为使用 python 脚本导入将是解决方案,并且在卡住之前完成了一半。

到目前为止,我的过程是:使用 pandas,从表中创建一个数据框,通过唯一标识符对表进行分组,并在选择第二条记录的日期列上使用 lambda 函数。

import pandas as pd
df=pd.read_excel (r'C:\..\form_records.xlsx')
df=df.groupby('ID')['datestamp'].apply(lambda x: x.nsmallest(2).max())
print(df)

在 jupyter 中,这会在没有标题的列中输出 ID 列和每个 ID 旁边的正确日期戳。像这样:

ID
REC0162259   2020-06-24 07:43:05
REC0162260   2020-06-24 07:44:00
REC0162261   2020-06-24 09:41:05
REC0162262   2020-06-24 08:13:29
REC0162263   2020-06-24 09:40:24
                     ...        
REC0162409   2020-06-24 16:23:30
Name: datestamp, Length: 149, dtype: datetime64[ns]

这看起来很有希望,但是当我在 powerBI 中使用脚本作为数据源时,没有数据表存在:

DAX:

let
    Source = Python.Execute("import pandas as pd#(lf)df=pd.read_excel (r'r'C:\..\form_records.xlsx'')#(lf)df=df.groupby('ID')['datestamp'].apply(lambda x: x.nsmallest(2).max())#(lf)print(df)"),
    df1 = Source{[Name="df"]}[Value]
in
    df1

我不知道如何将新的分组数据转换为 python 中的表以便可以导入。如果我不按步骤进行分组,原始数据将完美导入,就像我进行了 powerBI excel 导入一样。

请注意,原始数据包含除 ID 和日期戳之外的其他列,但我不一定需要这些列来进行分析。

【问题讨论】:

    标签: python pandas import powerbi pandas-groupby


    【解决方案1】:

    在以下帖子的帮助下使用 ...to_frame() 解决了:

    https://technology.amis.nl/2019/10/11/convert-groupby-result-on-pandas-data-frame-into-a-data-frame-using-to_frame/

    Converting a Pandas GroupBy output from Series to DataFrame

    import pandas as pd
    df=pd.read_excel (r'C:\..\form_records.xlsx')
    grouped_df=df.groupby('ID')['datestamp'].apply(lambda x: x.nsmallest(2).max()).to_frame(name="second_update").reset_index()
    print(grouped_df)
    

    【讨论】:

      猜你喜欢
      • 2016-01-20
      • 1970-01-01
      • 2023-02-17
      • 1970-01-01
      • 2021-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多