【发布时间】:2019-04-24 04:26:20
【问题描述】:
我在一个文件夹中有许多具有相同列的 Excel 文件。我需要浏览每个文件并比较一个文件的“用户编号”列的哪些值与另一个文件相同。然后基于此操作另一个名为“日期”的列。例如:
A2018_02_01 file has:
User_Number Date
18732A 2017-06-22
27192B 2017-08-06
23872Z 2017-08-06
82716A 2017-09-18
77629B 2017-09-12
A2018_02_02 file has:
User_Number Date
18732A 2017-06-22
27192B 2017-08-06
54321R 2017-12-11
23872Z 2017-11-04
18732A 2017-06-25
所以在这种情况下,我希望程序检查用户编号值是否匹配,然后,如果一个文件的日期 - 链接到这个数字 - 与另一个文件的日期不同,我想更改两个日期是最早的日期。
在这种情况下,我会:
A2018_02_01 file has:
User_Number Date
18732A 2017-06-22
27192B 2017-08-06
23872Z 2017-08-06
82716A 2017-09-18
77629B 2017-09-12
A2018_02_02 file has:
User_Number Date
18732A 2017-06-22
27192B 2017-08-06
54321R 2017-12-11
23872Z 2017-08-06
18732A 2017-06-22
我附加了所有文件:
import os
import glob
import pandas as pd
path=r'C/.../files'
files = os.listdir(path)
df = pd.DataFrame()
for f in glob.glob(path + "/*.xlsx"):
data = pd.read_excel(f,header=2)
df=df.append(data)
df["Date"]=pd.to_datetime(df["Date"], errors='coerce')
逻辑不像javascript逻辑那样工作,所以我不知道如何做这个条件。我试过了:
df_number = df["User Number"]
for number in df[df_number.duplicated()]:
number.df["Date"]number.df["Date"].min()
还有其他方法,但没有任何效果。任何帮助表示赞赏。
【问题讨论】:
-
你确定你的代码是完整的吗?没有'='的最后一行代码似乎是无稽之谈
-
它没有完成,我还在努力理解其中的逻辑。我不知道如何根据 number 的值更改日期(同时比较两个日期以查看哪个日期最旧)。
标签: python pandas dataframe series glob