【问题标题】:Python: Create Timerseries Dummy Variable based on DateTime ListPython:基于 DateTime 列表创建 Timerseries 虚拟变量
【发布时间】:2019-03-18 10:18:37
【问题描述】:

我有两个dataframes. my_index 包含基于分钟数据my_index['TIME'] 格式为yyyy-mm-dd hh:mm:ss(总长度100.000 行)的进一步分析的数据。 另一个数据框release_plain包含另一个数据框(长度为 70)内的特定日期时间(相同的时间格式)。两个日期时间都是字符串格式

现在我想将release_plain 的日期与my_index 的日期相匹配,当有匹配时,在新列my_index['Dummy'] 中写一个1,在比赛前后5 分钟的范围内(总共十一 1ns)。

到目前为止我所拥有的:

release_plain = pd.read_csv(infile)
my_index = pd.read_csv(index_file)

datetime = release_plain['Date'].astype(str) + ' ' + release_plain['Time'].astype(str)
list_datetime = list(datetime)


for date_of_interest in list_datetime:
    if my_index.loc[my_index['TIME']==date_of_interest]:
        my_index['Dummy'] == 1
    else:
        my_index['Dummy'] == 0

但这会返回:

ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

此外,据我所知,这只会为特定的 DateTime 创建 1 个 Dummy,而不是 Event 前后 5 分钟的 Dummy Range。

【问题讨论】:

    标签: python pandas dataframe match conditional-statements


    【解决方案1】:

    if my_index.loc[my_index['TIME']==date_of_interest]

    您在此处的括号似乎没有意义,您通过key 的评估几乎是if my_index.loc[True]:if my_index.loc[False] 不确定您是否有keysTrue 和@ 987654327@ 但我希望你不会,也许你的意思是这样的:

    if my_index.loc[my_index['TIME']] == date_of_interest

    【讨论】:

      猜你喜欢
      • 2017-05-31
      • 2015-08-11
      • 2019-08-06
      • 2022-12-02
      • 2023-01-16
      • 1970-01-01
      • 2023-03-27
      • 2020-09-02
      • 2023-04-08
      相关资源
      最近更新 更多