小编use*_*394的帖子

大熊猫相当于R的哪个()

之前已经问过这个问题的变化,我仍然无法理解如何根据我想要设置的条件实际切片python系列/ pandas数据帧.

在R中,我要做的是:

df[which(df[,colnumber] > somenumberIchoose),]
Run Code Online (Sandbox Code Playgroud)

which()函数在数据框的列中查找大于somenumberIchoose的行的条目索引,并将其作为向量返回.然后,我使用这些行索引对数据帧进行切片,以指示我想在新表单中查看哪些数据帧行.

在python中有相同的方法吗?我已经看过枚举的引用,在阅读文档后我并不完全理解.我的示例为了获得行索引,现在看起来像这样:

indexfuture = [ x.index(), x in enumerate(df['colname']) if x > yesterday]  
Run Code Online (Sandbox Code Playgroud)

但是,我继续收到无效的语法错误.我可以通过循环遍历值,并自己手动进行搜索来破解解决方法,但这似乎非常非pythonic和低效.

枚举()究竟是做什么的?什么是在矢量中找到满足所需参数的值索引的pythonic方法?

注意:我正在使用Pandas作为数据帧

python logical-operators which pandas

15
推荐指数
2
解决办法
9941
查看次数

删除dtype datetime NaT

我正在为输出准备一个pandas df,并希望删除表中的NaN和NaT,并将这些表位置留空.一个例子是

mydataframesample 

col1    col2     timestamp
a       b        2014-08-14
c       NaN      NaT
Run Code Online (Sandbox Code Playgroud)

会成为

col1    col2     timestamp
a       b        2014-08-14
c       
Run Code Online (Sandbox Code Playgroud)

大多数值都是dtypes对象,timestamp列是datetime64 [ns].为了解决这个问题,我尝试使用熊猫mydataframesample.fillna(' ')来有效地在该位置留出空间.但是,这不适用于日期时间类型.为了解决这个问题,我试图将timestamp列转换回对象或字符串类型.

是否可以在不进行类型转换的情况下移除NaN/NaT?如果没有,我如何进行类型转换(尝试str()和astype(str)但是datetime是原始格式的困难)?

python pandas

13
推荐指数
2
解决办法
4万
查看次数

Python解析JavaScript生成的HTML表

我正在尝试从纽约证券交易所网站(http://www1.nyse.com/about/listed/IPO_Index.html)上抓一张表格,将其放入熊猫数据框中。为了做到这一点,我有一个像这样的设置:

def htmltodf(url):
page = requests.get(url)
soup = BeautifulSoup(page.text)

tables = soup.findAll('table')
test = pandas.io.html.read_html(str(tables))

return(test)            #return dataframe type object
Run Code Online (Sandbox Code Playgroud)

但是,当我在页面上运行此命令时,列表中返回的所有表实际上都是空的。当我进一步调查时,我发现该表是由javascript生成的。在Web浏览器中使用开发人员工具时,我看到该表看起来与带有标签等的任何其他HTML表类似。但是,在源代码视图中显示的却是这样的:

<script language="JavaScript">

.
.
.

<script>
var year = [["ICC","21st Century Oncology Holdings, Inc.","22 May  2014","/about/listed/icc.html" ],
... more entries here ...
,["ZOES","Zoe's Kitchen, Inc.","11 Apr 2014","/about/listed/zoes.html" ]] ;

    if(year.length != 0) 
    {   

    document.write ("<table width='619' border='0' cellspacing='0' cellpadding='0'><tr><td><span class='fontbold'>");
    document.write ('2014' + " IPO Showcase"); 
    document.write ("</span></td></tr></table>"); 
    }  
</script>
Run Code Online (Sandbox Code Playgroud)

因此,当我的HTML解析器去查找table标记时,它只能找到if条件,并且下面没有合适的标记会指示内容。我怎么刮这张桌子?是否可以搜索标签而不是显示内容的表格?因为代码不是传统的html表形式,所以我如何用熊猫读入代码?我必须手动解析数据吗?

html javascript python beautifulsoup pandas

5
推荐指数
1
解决办法
5357
查看次数