不基于列值过滤

2024-06-07 11:03:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经成功地过滤了列值,但是对于这个数据帧,过滤器正在一个接一个地返回NaN数据帧。我不确定我错在哪里。我张贴与结果的代码

import pandas as pd
df = pd.read_csv("http://portal.amfiindia.com/DownloadNAVHistoryReport_Po.aspx?mf=17&tp=1&frmdt=04-Nov-2017&todt=02-Dec-2018",sep=";",parse_dates=['Date'])
df=df.drop(['Repurchase Price','Sale Price'],axis=1)
df = df.dropna()
df['Net Asset Value'] = df['Net Asset Value'].apply(pd.to_numeric,errors='coerce')
df.columns = [['scheme_code','scheme','nav','date']]
df[df['scheme_code'] == '123690']

过滤器的结果是

      scheme_code scheme                  nav date
2          123690    NaN                  nan  NaT
3          123690    NaN                  nan  NaT
4          123690    NaN                  nan  NaT
5          123690    NaN                  nan  NaT
6          123690    NaN                  nan  NaT
7          123690    NaN                  nan  NaT
8          123690    NaN                  nan  NaT
9          123690    NaN                  nan  NaT
10         123690    NaN                  nan  NaT
11         123690    NaN                  nan  NaT
12         123690    NaN                  nan  NaT
13         123690    NaN                  nan  NaT
14         123690    NaN                  nan  NaT
15         123690    NaN                  nan  NaT
16         123690    NaN                  nan  NaT
17         123690    NaN                  nan  NaT
18         123690    NaN                  nan  NaT
19         123690    NaN                  nan  NaT
20         123690    NaN                  nan  NaT
21         123690    NaN                  nan  NaT
22         123690    NaN                  nan  NaT
23         123690    NaN                  nan  NaT
24         123690    NaN                  nan  NaT
25         123690    NaN                  nan  NaT
26         123690    NaN                  nan  NaT
27         123690    NaN                  nan  NaT
28         123690    NaN                  nan  NaT
29         123690    NaN                  nan  NaT
30         123690    NaN                  nan  NaT
31         123690    NaN                  nan  NaT

但是,如果我查看dataframe head方法,我可以看到实际的数据和值

  scheme_code                               scheme                  nav  \
2      123690  Kotak Banking and PSU Debt - Growth                38.60   
3      123690  Kotak Banking and PSU Debt - Growth                38.58   
4      123690  Kotak Banking and PSU Debt - Growth                38.58   
5      123690  Kotak Banking and PSU Debt - Growth                38.59   
6      123690  Kotak Banking and PSU Debt - Growth                38.59   

        date  
2 2017-11-06  
3 2017-11-07  
4 2017-11-08  
5 2017-11-09 

我也试着转换成数字,但我仍然可以看到相同的结果。如果有人能帮我找出错误,我将不胜感激


Tags: and数据dfcodenannatpsupd
1条回答
网友
1楼 · 发布于 2024-06-07 11:03:40

问题是您将列指定为列表的列表(注意双括号),因此不满足条件。只需将其更改为一个简单的列表:

df.columns = ['scheme_code','scheme','nav','date']

相关问题 更多 >

    热门问题