我对此完全陌生,因此没有任何代码可提供。
我需要python 3.x的帮助,最好是pandas软件包。
我有两个单独的Excel文件。在第一个excel文件中,我想按行中的值查找行,该值看起来像K232999
。它们位于第二列。
然后,我想使用与这些名称相关联的时间值,该值在第一列中,格式为dd/mm/yyyy hh:mm
,并用它在第二个excel文件中查找行并将其提取。第二个文件中的时间值也位于第一列中,并且具有相同的格式。
最重要的是时间间隔也很重要:
我需要1.9.2019. 12:55 - 2.9.2019. 10:35
的{{1}}和2.9.2019. 09:46 - 3.9.2019. 02:51
之间的间隔,然后在不同的excel文件中找到相同的间隔并将其合并到单独的excel或内存中的某个位置,以便我可以使用它们,或者最好同时选择两者。例如:
Excel 1:
K324645
Excel 2:
1.9.2019. 12:55 K324645
1.9.2019. 17:55 K324645
2.9.2019. 02:51 K324645
2.9.2019. 10:35 K324645
2.9.2019. 12:55 FGJFJKH
2.9.2019. 17:12 SAFFAFA
2.9.2019. 19:15 SGDFGDS
3.9.2019. 11:46 K324645
3.9.2019. 17:55 K324645
3.9.2019. 20:51 K324645
3.9.2019. 05:32 FDSJFJKH
3.9.2019. 10:12 SAFFAFA
3.9.2019. 17:12 SGDFGDS
最终结果:
1.9.2019. 12:57 345,7
1.9.2019. 17:50 218,3
2.9.2019. 02:53 323,4
2.9.2019. 10:29 125,5
2.9.2019. 13:00 215,8
2.9.2019. 17:09 232,7
3.9.2019. 09:53 188.7
3.9.2019. 10:45 656.5
3.9.2019. 12:26 355,2
3.9.2019. 17:45 656.5
3.9.2019. 20:49 268.4
请注意,表中的日期不同。我必须在first的时间范围内从seconde提取值。
答案 0 :(得分:0)
首次使用:
import pandas as pd
df1=pd.read_excel(file1)
df2=pd.read_excel(file2)
pd.to_datetime(df1['Time_Column_name'].str.strip(),format='%H:%M:%S')
pd.to_datetime(df2['Time_Column_name'].str.strip(),format='%H:%M:%S')
然后使用以下方法合并2个数据框:
pd.merge(df1,df2,how=inner)
答案 1 :(得分:0)
您说您是一个全新的人,所以我不确定您对此已经走了多远。如果已将两个文件都导入到数据框中,则需要将两个数据框中的DateTime
列重命名为相同的名称。然后使用内部合并。
df3 = pd.merge(df1, df2, on='DateTime', how='inner') # merge the dataframes
df3['DateTime'] = pd.to_datetime(df3['DateTime']) # convert column to date/time format
在这一点上,我将数据帧分为两个。时间在1/9/2019 12:55和2/9/2019 10:35之间的时间。另一个时间为2/9/2019 09:46和3/9/2019 02:51之间。然后将这两个合并在一起。
firstset = df3[(df3['DateTime'].astype(str) >= '2019-01-09 12:55:00') & (df3['DateTime'].astype(str) < '2019-02-09 10:35:01')]
secondset = df3[(df3['DateTime'].astype(str) >= '2019-02-09 09:46:00') & (df3['DateTime'].astype(str) < '2019-03-09 02:51:01')]
final = pd.concat([firstset, secondset]).drop_duplicates()
这应该完成您想要的。不过,这可能不是最快的方法。