我有 21 个数据帧。每个数据框都有一列是日期。我想要做的是根据每个数据帧共有的日期过滤所有这些数据帧。这是数据框的示例:
现在图像 20 个其他类似的数据帧,我想将它们全部过滤,以便所有数据帧只有每个数据帧共有的日期数据。所以每个数据帧都将具有相同的长度和相同的日期。
我只设法根据最短的数据帧(日期最少的数据帧)进行过滤,但这不起作用,因为某些数据帧中没有日期,导致数据帧长度不同。 (我使用了 .isin()
方法)
答案 0 :(得分:1)
# numpy array
import numpy as np
dateList = df1["date"].values;
# 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)
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);