小编fee*_*wet的帖子

如何检查python pandas中列的dtype

我需要使用不同的函数来处理数字列和字符串列.我现在在做什么真是愚蠢:

allc = list((agg.loc[:, (agg.dtypes==np.float64)|(agg.dtypes==np.int)]).columns)
for y in allc:
    treat_numeric(agg[y])    

allc = list((agg.loc[:, (agg.dtypes!=np.float64)&(agg.dtypes!=np.int)]).columns)
for y in allc:
    treat_str(agg[y])    
Run Code Online (Sandbox Code Playgroud)

有没有更优雅的方式来做到这一点?例如

for y in agg.columns:
    if(dtype(agg[y]) == 'string'):
          treat_str(agg[y])
    elif(dtype(agg[y]) != 'string'):
          treat_numeric(agg[y])
Run Code Online (Sandbox Code Playgroud)

python pandas

112
推荐指数
6
解决办法
23万
查看次数

如何从多索引数据框中删除级别?

例如,我有:

In [1]: df = pd.DataFrame([8, 9],
                          index=pd.MultiIndex.from_tuples([(1, 1, 1),
                                                           (1, 3, 2)]),
                          columns=['A'])

In [2] df
Out[2]: 
       A
1 1 1  8
  3 2  9
Run Code Online (Sandbox Code Playgroud)

是否有更好的方法从索引中删除最后一个级别:

In [3]: pd.DataFrame(df.values,
                     index=df.index.droplevel(2),
                     columns=df.columns)
Out[3]: 
     A
1 1  8
  3  9
Run Code Online (Sandbox Code Playgroud)

multi-index dataframe pandas

52
推荐指数
3
解决办法
5万
查看次数

VBS中的HTTP GET

有没有办法在Visual Basic脚本中执行HTTP GET请求?我需要从特定的URL获取响应的内容以进行处理.

vbscript http request

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

在不使用索引的情况下替换pandas DataFrame中所选单元格的值

对于这个问题,这是一个相当类似的问题,但有一个关键的区别:我选择的数据不是通过索引而是通过某些标准来改变.

如果我应用的条件返回单行,我希望能够以一种简单的方式设置该行中某列的值,但我的第一次尝试不起作用:

>>> d = pd.DataFrame({'year':[2008,2008,2008,2008,2009,2009,2009,2009], 
...                   'flavour':['strawberry','strawberry','banana','banana',
...                   'strawberry','strawberry','banana','banana'],
...                   'day':['sat','sun','sat','sun','sat','sun','sat','sun'],
...                   'sales':[10,12,22,23,11,13,23,24]})

>>> d
   day     flavour  sales  year
0  sat  strawberry     10  2008
1  sun  strawberry     12  2008
2  sat      banana     22  2008
3  sun      banana     23  2008
4  sat  strawberry     11  2009
5  sun  strawberry     13  2009
6  sat      banana     23  2009
7  sun      banana     24  2009

>>> d[d.sales==24]
   day flavour  sales  year
7  sun  banana     24  2009

>>> d[d.sales==24].sales = 100
>>> d
   day …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

38
推荐指数
3
解决办法
6万
查看次数

如何从TSQL中的日期获取Quarter

我在列中有不同的日期.例如20080102,20070821

我想在年份和季度转换这个日期.

20080102
20070821
Run Code Online (Sandbox Code Playgroud)

 

Year      Quarter
2008      2008-Q1
2007      2007-Q3
Run Code Online (Sandbox Code Playgroud)

我如何获得Quarter级别的详细信息.

sql t-sql sql-server sql-server-2005

37
推荐指数
3
解决办法
18万
查看次数

在列和索引的值上对pandas数据帧进行排序?

是否可以按列的值对pandas数据帧进行排序,还可以通过索引进行排序?

如果按列的值对pandas数据框进行排序,则可以按列对结果数据框进行排序,但不幸的是,您会看到数据框索引的顺序在排序列的相同值内混乱.

那么,我可以按列对数据框进行排序,例如命名列,count还可以按索引值对其进行排序?是否可以按降序对列进行排序,但是按升序对索引进行排序?

我知道如何在数据框中对多个列进行排序,并且还知道我可以通过首先reset_index()对索引进行排序并对其进行排序,然后再次创建索引.但这样做是否更直观,更有效?

python sorting dataframe pandas

34
推荐指数
5
解决办法
4万
查看次数

Visual Studio Code 调试控制台中的 pydevd 警告

我已经搜索了一段时间但找不到任何相关问题。

当使用带有 Python 扩展的 Visual Studio Code 来调试大型元素时,计算表示或获取属性可能需要一些时间。

在这些情况下,会出现如下警告:

pydevd 警告:计算...(DataFrame)的 repr 很慢(花了 0.84 秒)

打印到调试控制台(另请参阅https://www.pydev.org/history_pydev.html)。

更烦人的是,左下角会出现一个弹出窗口。

有什么方法可以禁用这些警告,特别是有关此警告的弹出窗口?

我或多或少尝试了有关 Visual Studio Code 调试中的日志记录和警告的所有内容。

一个最小的例子看起来像

import pandas as pd

df = pd.read_csv('file of 1GB')

df
Run Code Online (Sandbox Code Playgroud)

该警告不是特定行上的警告,而是每次使用大对象时调试器发出的警告(例如,仅打印或使用 df.some_operation() 操作)。

  1. 断点处警告的屏幕截图
  2. 每次在调试控制台中打印对象时发出警告的屏幕截图

python debugging pydev visual-studio-code

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

如何启动Chrome Advanced REST Client

这个伟大的REST客户端"延伸"为Chrome,但我可以找到发动的唯一途径是去Chrome网上应用店!

它在我的Chrome扩展程序中列为已启用.是否有任何本地方式启动它?

高级REST客户端Chrome扩展

google-chrome-extension

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

填写MultiIndex Pandas Dataframe中的日期空白

我想修改一个pandas MultiIndex DataFrame,使每个索引组包含指定范围之间的日期.我希望每个小组用值0(或NaN)填写2013-06-11到2013-12-31的缺失日期.

Group A, Group B, Date,           Value
loc_a    group_a  2013-06-11      22
                  2013-07-02      35
                  2013-07-09      14
                  2013-07-30       9
                  2013-08-06       4
                  2013-09-03      40
                  2013-10-01      18
         group_b  2013-07-09       4
                  2013-08-06       2
                  2013-09-03       5
         group_c  2013-07-09       1
                  2013-09-03       2
loc_b    group_a  2013-10-01       3
Run Code Online (Sandbox Code Playgroud)

我已经看过一些关于reindexing的讨论,但那是一个简单的(非分组的)时间序列数据.

是否有捷径可寻?


以下是我在完成此操作时所做的一些尝试.例如:一旦我被拆开['A', 'B'],我就可以重新索引.

df = pd.DataFrame({'A': ['loc_a'] * 12 + ['loc_b'],
                'B': ['group_a'] * 7 + ['group_b'] * 3 + ['group_c'] * 2 + ['group_a'],
                'Date': ["2013-06-11",
                        "2013-07-02",
                        "2013-07-09",
                        "2013-07-30",
                        "2013-08-06",
                        "2013-09-03", …
Run Code Online (Sandbox Code Playgroud)

python numpy multi-index dataframe pandas

23
推荐指数
2
解决办法
7060
查看次数

在pandas数据帧中向量化条件赋值

如果我有一个带有列x的数据帧df,并希望在伪代码中使用此值基于x的值创建列y

 if df['x'] <-2 then df['y'] = 1 
 else if df['x'] > 2 then df['y']= -1 
 else df['y'] = 0
Run Code Online (Sandbox Code Playgroud)

我将如何实现这一目标.我认为np.where是最好的方法,但不知道如何正确编码.

python numpy vectorization pandas

22
推荐指数
3
解决办法
2万
查看次数