Python 如何在一定条件下只获取数据帧的第二个索引

Python 如何在一定条件下只获取数据帧的第二个索引,python,pandas,dataframe,loc,Python,Pandas,Dataframe,Loc,首先,我对python非常陌生,所以请对我放松。 我需要从数据帧中得到一个特定的值 我得到了这个密码: 第一个输入的数据帧: 输入: #get the date from the date column ddate = df_earning_calander.loc[ df_earning_calander.index == stock_symbol, 'date'][stock_symbol] print(ddate) 输出: AAP 2019-05-22 00:00:00 AA

首先,我对python非常陌生,所以请对我放松。
我需要从数据帧中得到一个特定的值

我得到了这个密码:
第一个输入的数据帧:
输入:

#get the date from the date column
ddate = df_earning_calander.loc[
    df_earning_calander.index == stock_symbol, 'date'][stock_symbol]
print(ddate)
输出:

AAP
2019-05-22 00:00:00
AAP   2018-11-13
AAP   2019-02-15
AAP   2019-02-19
AAP   2019-05-21
AAP   2019-05-22
Name: date, dtype: datetime64[ns]
if ddate in ddate_12:
    continue

第二个输入的数据帧:
输出:

AAP
2019-05-22 00:00:00
AAP   2018-11-13
AAP   2019-02-15
AAP   2019-02-19
AAP   2019-05-21
AAP   2019-05-22
Name: date, dtype: datetime64[ns]
if ddate in ddate_12:
    continue
嗯,我试图检查第一个数据帧的日期是否在第二个数据帧中,并且(当股票名称相同时)。

此代码不会转到下一个iterable。我认为这是因为第二次输出给我的是股票名称和日期,而不仅仅是日期。

您可以只选择日期列,创建两列
DataFrame
,并在可能的情况下添加重复对:

然后,对于具有相同列名称的两个DatFrame之间的交点,请使用默认内部联接-获取两个DatTime之间所有日期时间匹配的所有符号:

df = df1.merge(df2)
print (df)
  symbol        date
0    AAP  2019-05-22
最后一个如果需要测试符号列表比较布尔掩码的列
df['symbol']
,测试是否至少有一个
True


你好请花点时间阅读这篇文章,以及如何提供答案,并相应地修改你的问题。这些提示可能也很有用。在降价中,如果您想跳过一行,请使用2个空格,然后输入,而不是

@jezrael谢谢我添加了数据框,这样人们就可以看到这是怎么回事了。@Craicerjack我尝试过使用2个空格,但不起作用……不,我需要检查第一个数据框中的日期是否存在于第二个数据框中(对于相同的股票)。我认为问题在于第二次打印,它同时打印股票名称和日期。我希望它只打印日期。我认为这是解决方案,我不确定如何执行
AAP   2018-11-13
AAP   2019-02-15
AAP   2019-02-19
AAP   2019-05-21
AAP   2019-05-22
Name: date, dtype: datetime64[ns]
if ddate in ddate_12:
    continue
df1 = df_earning_calander['date'].reset_index().drop_duplicates()
print (df1)
  symbol        date
0    AAP  2019-05-22
1    ADI  2019-05-22
2     CM  2019-05-22
3   CSWI  2019-05-22
4   KLXE  2019-05-22

df2 = df_earnings_12['date'].reset_index().drop_duplicates()
print (df2)
  symbol        date
0    AAP  2018-11-13
1    AAP  2019-02-15
2    AAP  2019-02-19
3    AAP  2019-05-21
4    AAP  2019-05-22
df = df1.merge(df2)
print (df)
  symbol        date
0    AAP  2019-05-22
mystocks = ['ADI','AAP']
for stock_symbol in mystocks:
    if ((df['symbol'] == stock_symbol).any()):
        print (f'Matched {stock_symbol}')
        #Matched AAP