我为提出这样一个基本的问题提前道歉,但我被难住了
这是一个非常简单的虚拟示例。我在《熊猫》中遇到了一些匹配日期的问题,我不知道为什么
df=pd.DataFrame([1,'2016-01-01'],
[2,'2016-01-01'],
[3,'2016-01-02'],
[4,'2016-01-03']],
列=['ID','Date'])
df['Date']=df['Date'].astype('datetime64')
假设我想匹配上述df中的第1行。
我事先知道我想匹配ID1
我也知道我想要的日期,事实上,我将直接从df的第1行提取该日期,使其防弹
某些\u id=1
一些日期=df.iloc[1:2][“日期”]#给出2016-01-01
那么为什么这行不能返回我的第1行
df[(df['ID']==some\u ID)&;(df['Date']==some\u Date)]
相反,我得到了
ValueError:序列长度必须匹配才能进行比较
这我理解,也有道理……但让我想知道……如果我不能比较一对多,我还能如何比较熊猫的日期呢
你说:
some_date=df.iloc[1:2]['date']#给出2016-01-01
但这不是它所给予的。它给出了一个包含一个元素的序列,而不仅仅是一个值——当您使用[1:2]作为切片时,您不会得到一个元素,而是一个包含一个元素的容器:
>&燃气轮机&燃气轮机;一些约会
1 2016-01-01
名称:日期,数据类型:datetime64[ns]
相反,你应该这样做
>&燃气轮机&燃气轮机;some_date=df.iloc[1]['date']
&燃气轮机&燃气轮机&燃气轮机;一些约会
时间戳('2016-01-01 00:00:00')
之后
>&燃气轮机&燃气轮机;df[(df['ID']==某个ID)&和(df['Date']==某个日期)]
身份证日期
0 1 2016-01-01
(请注意,如果要查找大量的some\u id和some\u date值,则有更有效的模式,但这是一个单独的问题。)