Python 选择列值为“0”的pd.DataFrame行;“关闭”;互相 数据集

Python 选择列值为“0”的pd.DataFrame行;“关闭”;互相 数据集,python,pandas,Python,Pandas,我有一个超过50万行的电影数据集,这个数据集如下所示(带有虚构的数字) 对象 选择发布日期“足够接近”的电影(例如,电影A和电影B的发布日期差不到一个月),然后查看评级是否相同,收入如何不同 问题: 我知道我可以写一个双循环来实现这个目标。然而,我怀疑这是正确/有效的方法,因为 一些人(参见@cs95对该问题的评论)建议对数据帧进行迭代是“反模式”的,因此不建议这样做 数据集有50多万行,我不确定编写双循环是否有效 有人能为我提出的问题指点一下吗?提前感谢。一般来说,在使用熊猫时,确实应该尽

我有一个超过50万行的电影数据集,这个数据集如下所示(带有虚构的数字)

对象 选择发布日期“足够接近”的电影(例如,电影A和电影B的发布日期差不到一个月),然后查看评级是否相同,收入如何不同

问题: 我知道我可以写一个双循环来实现这个目标。然而,我怀疑这是正确/有效的方法,因为

  • 一些人(参见@cs95对该问题的评论)建议对数据帧进行迭代是“反模式”的,因此不建议这样做
  • 数据集有50多万行,我不确定编写双循环是否有效

有人能为我提出的问题指点一下吗?提前感谢。

一般来说,在使用熊猫时,确实应该尽量避免循环。我的想法并不理想,但可能会为您指明正确的方向:

  • 从每行的日期列中检索月份和年份,以创建新列“月”和“年”。你可以看看怎么做
  • 然后,按月份和年份对数据帧进行分组(
    grouped_df=df.groupby(by=[“month”,“year])
    ),得到的分组是包含同一月份和年份电影的数据帧。现在,您可以决定要执行的进一步分析,例如,平均值(
    grouped_df=df.groupby(by=[“month”,“year]).mean()
    ),使用
    apply()

  • 如果您希望周期短于一个月,也可以显示预期输出和更多样本数据。
    MovieName  Date           Rating      Revenue
    A          2019-01-15     3           3.4 million
    B          2019-02-03     3           1.2 million
    ...        ...            ...         ...