python - 根据常见日期过滤多个数据框
问题描述
我有 21 个数据框。每个数据框都有一列是日期。我想要做的是根据每个数据帧共有的日期过滤所有这些数据帧。这是数据框的示例:
现在图像 20 个其他类似的数据帧,我想将它们全部过滤,以便所有数据帧只有每个数据帧共有的日期数据。因此,每个数据框都将具有相同的长度和相同的日期。
我只设法根据最短的数据帧(日期最少的数据帧)进行过滤,但这不起作用,因为有些数据帧中没有的日期会导致不同长度的数据帧。(我用的.isin()
方法)
解决方案
第 1 步 - 获取 1 个数据框并存储其所有日期
# numpy array
import numpy as np
dateList = df1["date"].values;
第 2 步 - 处理其他数据框的日期
# make a list of name of all data frame
dataFrameList = [df2, df3, .......df21]
# processing - geting all common dates in 21 df
for df in dataFrameList:
# dates of current dataframe
dfdatelist = df["date"].values
# take intersection
dateList = np.intersect1d(dateList, dfdatelist)
第 3 步 - 过滤常见日期的所有数据框
df1 = df1 [dataframe["dates"].values.tolist() in dateList.tolist()]
for df in dataFrameList:
df = df [dataframe["dates"].values.tolist() in dateList.tolist()]
# Print result
print(df1)
for df in dataFrameList:
print(df);
推荐阅读
- android - Xamarin.Android 应用程序中的 XML 和 AXML 有什么区别?
- angular - this.router.navigate 没有检测到 safari 的任何变化
- javascript - 如何使用 jquery 创建一组选定选项?
- sql - 在oracle sql中拆分字符串时面临问题
- android - 无法从静态方法 Flutter 访问实例成员
- c++ - 卤化物函数构造函数
- ansible - 使用 Ansible Molecule 进行测试时如何跳过一些角色任务?
- java - “getText”语法不起作用并且显示错误
- c++ - 相同的方程和相同的参数为什么返回不同的计算结果?
- python - 是否有一个函数可以从 python 列表的 m 个元素中获取 n 个元素?