擅长:python、mysql、java
<p>您可以使用许多方法查找值,下面是一种更简单的方法</p>
<ol>
<li>查一下AAPL的价格<code>df["Ticker"]=="AAPL"</code>将返回一个真/假值数组。当<code>df["Ticker"]</code>包含<code>"AAPL"</code>时为True<code>df.loc</code>将位于数据帧中,其中<code>df["Ticker"]=="AAPL"</code>数组中的真值与数据帧中的行相对应。这就是为什么您只看到<code>df["Ticker"]=="AAPL"</code>所在的行</李>
</ol>
<pre><code>df # your df
df_AAPL = df.loc[df["Ticker"]=="AAPL"]
</code></pre>
<ol start=“2”>
<li>要获取价格,可以使用<code>df.loc</code>定位价格列</李>
</ol>
<pre><code>df_AAPL_price = df_AAPL.loc[:,"Price"]
</code></pre>
<ol start=“3”>
<li>要在某个日期(假设您的日期在str中)获取“Ticker”==“AAPL”时的价格,您可以使用<code>lambda</code>函数并将其应用于数据帧中的列,因此<code>axis = 1</code>。此函数接受行中的值并返回<code>True</code>if<code>row["Date"] == "2019-03-27" and row["Ticker"] == "AAPL"</code>else<code>False</code>。与第1点中的概念相同,<code>df.loc</code>用于定位<code>True</code>出现在数组中的数据帧中的位置。您可以将其视为dataframe=[1,2,3],array=[True,False,True],并将它们匹配起来,然后仅在数组中为True时才获取该值。因此,在这种情况下,只有“1”和“3”</李>
</ol>
<pre><code>df_new = df.loc[df.apply(lambda row:True if row["Date"] == "2019-03-27" and row["Ticker"] == "AAPL" else False ,axis=1)]
</code></pre>