【问题标题】:cant get all rows with date pandas无法使用日期熊猫获取所有行
【发布时间】:2020-12-29 20:45:19
【问题描述】:

我搜索数据框以获取日期的所有文本,我不知道我失败的地方

 def date_extract(start, end):
  date_start = datetime.strptime(start, '%Y/%m/%d')
  date_end  = datetime.strptime(end, '%Y/%m/%d')
  all =pd.DataFrame()
  while date_start<=date_end:
    date_start += timedelta(days=1)
    pd.concat([df[df['date'].str.contains(datetime.strftime(date_start, '%Y/%m/%d')),all]])
  return all

我得到了这个错误

TypeError: '(0         False
1         False
2         False
3         False
4         False
          ...  
165532    False
165533    False
165534    False
165535    False
165536    False
Name: date, Length: 165537, dtype: bool, Empty DataFrame
Columns: []
Index: [])' is an invalid key

【问题讨论】:

  • 您的代码中的df 是什么?

标签: python pandas date


【解决方案1】:

这一行有两个错误:

pd.concat([df[df['date'].str.contains(datetime.strftime(date_start, '%Y/%m/%d')),all]])

首先,您必须将末尾的一个方括号移到最后一个逗号之前。 其次,您需要再次将该值分配给变量“all”,以便能够在循环结束时返回结果。

应该是这样的:

all = pd.concat([df[df['date'].str.contains(datetime.strftime(date_start, '%Y/%m/%d'))],all])

只需更改该行,它应该可以按预期工作。如果您可以举例说明您正在搜索的变量,例如 df ,那就更好了。我怀疑可能有更好的方法来实现这一目标。

【讨论】:

  • 完全不,它的发送错误就是列表,我将其更改为 Dataframe 但它不起作用(TypeError:无法连接类型为''的对象;只有Seri​​es和DataFrame对象是有效的
猜你喜欢
  • 2017-07-08
  • 2021-09-14
  • 2019-01-31
  • 1970-01-01
  • 2021-05-09
  • 2020-01-11
  • 1970-01-01
  • 2022-06-10
  • 2023-03-05
相关资源
最近更新 更多