小编cs9*_*s95的帖子

如何获取pandas中groupby对象中的组数?

这将是有用的,所以我知道有多少我必须执行计算的唯一组.谢谢.

假设调用groupby对象dfgroup.

python group-by dataframe pandas pandas-groupby

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

如何将StackOverflow中的DataFrame复制/粘贴到Python中

问题答案中,用户经常发布DataFrame他们的问题/答案适用的示例:

In []: x
Out[]: 
   bar  foo
0    4    1
1    5    2
2    6    3
Run Code Online (Sandbox Code Playgroud)

能够将它DataFrame放入我的Python解释器中是非常有用的,这样我就可以开始调试问题,或者测试答案.

我怎样才能做到这一点?

python clipboard pandas

39
推荐指数
2
解决办法
6203
查看次数

Lambda包括if ... elif ... else

我想在lambda函数中使用if ... elif ... else将lambda函数应用于DataFrame列.

df和代码是smth.喜欢:

df=pd.DataFrame({"one":[1,2,3,4,5],"two":[6,7,8,9,10]})

df["one"].apply(lambda x: x*10 if x<2 elif x<4 x**2 else x+10)
Run Code Online (Sandbox Code Playgroud)

显然这种方式不起作用.有没有办法申请,如果.... elif ....其他的lambda?如何使用List Comprehension重新获得相同的结果?

谢谢你的回复.

python dataframe pandas

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

为什么nandy函数在pandas系列/数据帧上如此缓慢?

考虑一个小型MWE,取自另一个问题:

DateTime                Data
2017-11-21 18:54:31     1
2017-11-22 02:26:48     2
2017-11-22 10:19:44     3
2017-11-22 15:11:28     6
2017-11-22 23:21:58     7
2017-11-28 14:28:28    28
2017-11-28 14:36:40     0
2017-11-28 14:59:48     1
Run Code Online (Sandbox Code Playgroud)

目标是剪切所有值的上限为1.我的答案使用np.clip,这很好.

np.clip(df.Data, a_min=None, a_max=1)
array([1, 1, 1, 1, 1, 1, 0, 1])
Run Code Online (Sandbox Code Playgroud)

要么,

np.clip(df.Data.values, a_min=None, a_max=1)
array([1, 1, 1, 1, 1, 1, 0, 1])
Run Code Online (Sandbox Code Playgroud)

两者都返回相同的答案.我的问题是关于这两种方法的相对表现.考虑 -

df = pd.concat([df]*1000).reset_index(drop=True)

%timeit np.clip(df.Data, a_min=None, a_max=1)
1000 loops, best of 3: 270 µs per loop

%timeit np.clip(df.Data.values, a_min=None, a_max=1)
10000 loops, best …
Run Code Online (Sandbox Code Playgroud)

python performance numpy pandas

38
推荐指数
4
解决办法
2275
查看次数

Python pandas groupby对象apply方法重复第一组

我的第一个问题:我对pandas(0.12.0-4)中groupby的apply方法的这种行为感到困惑,它似乎将函数TWICE应用于数据帧的第一行.例如:

>>> from pandas import Series, DataFrame
>>> import pandas as pd
>>> df = pd.DataFrame({'class': ['A', 'B', 'C'], 'count':[1,0,2]})
>>> print(df)
   class  count  
0     A      1  
1     B      0    
2     C      2
Run Code Online (Sandbox Code Playgroud)

我首先检查groupby函数是否正常,看起来没问题:

>>> for group in df.groupby('class', group_keys = True):
>>>     print(group)
('A',   class  count
0     A      1)
('B',   class  count
1     B      0)
('C',   class  count
2     C      2)
Run Code Online (Sandbox Code Playgroud)

然后我尝试在groupby对象上使用apply做类似的事情,我得到第一行输出两次:

>>> def checkit(group):
>>>     print(group)
>>> df.groupby('class', group_keys = True).apply(checkit)
  class  count
0     A      1
  class  count …
Run Code Online (Sandbox Code Playgroud)

python group-by pandas pandas-groupby

37
推荐指数
2
解决办法
8021
查看次数

使用pandas删除一列中的非数字行

有一个如下所示的数据框,它有一个不干净的列'id',它应该是数字列

id, name
1,  A
2,  B
3,  C
tt, D
4,  E
5,  F
de, G
Run Code Online (Sandbox Code Playgroud)

是否有一种简洁的方法来删除行,因为tt和de不是数值

tt,D
de,G
Run Code Online (Sandbox Code Playgroud)

使数据帧干净?

id, name
1,  A
2,  B
3,  C
4,  E
5,  F
Run Code Online (Sandbox Code Playgroud)

python pandas

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

在Python中没有特定元素的快速返回列表的方法

如果我有任意顺序的卡套装列表,如下所示:

suits = ["h", "c", "d", "s"]
Run Code Online (Sandbox Code Playgroud)

我想要返回一个没有的列表 'c'

noclubs = ["h", "d", "s"]
Run Code Online (Sandbox Code Playgroud)

有一个简单的方法来做到这一点?

python

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

如何在pandas python中将字符串转换为日期时间格式?

我在名为train的数据帧中有一个类型为string(object)的列I_DATE,如下所示.

I_DATE
28-03-2012  2:15:00 PM
28-03-2012  2:17:28 PM
28-03-2012  2:50:50 PM
Run Code Online (Sandbox Code Playgroud)

如何将I_DATE从字符串转换为数据时格式并指定输入字符串的格式.我看到了一些答案,但它不适用于AM/PM格式.

另外,如何根据pandas中的日期范围过滤行?

python datetime pandas

35
推荐指数
3
解决办法
7万
查看次数

如何融化Spark DataFrame?

PySpark中的Apache Spark中是否存在等效的Pandas Melt函数,或者至少在Scala中?

我到目前为止在python中运行了一个示例数据集,现在我想将Spark用于整个数据集.

提前致谢.

melt apache-spark apache-spark-sql pyspark

35
推荐指数
3
解决办法
1万
查看次数

使用复合(分层)索引从Pandas数据框中选择行

我怀疑这是微不足道的,但我还没有发现让我根据分层键的值从Pandas数据帧中选择行的咒语.因此,例如,假设我们有以下数据帧:

import pandas
df = pandas.DataFrame({'group1': ['a','a','a','b','b','b'],
                       'group2': ['c','c','d','d','d','e'],
                       'value1': [1.1,2,3,4,5,6],
                       'value2': [7.1,8,9,10,11,12]
})
df = df.set_index(['group1', 'group2'])
Run Code Online (Sandbox Code Playgroud)

看起来像我们期望的那样:

在此输入图像描述

如果df未在group1上编入索引,我可以执行以下操作:

df['group1' == 'a']
Run Code Online (Sandbox Code Playgroud)

但是这个带有索引的数据帧失败了.所以也许我应该把它想象成一个带有分层索引的Pandas系列:

df['a','c']
Run Code Online (Sandbox Code Playgroud)

不.那也失败了.

那么如何选择所有行:

  1. group1 =='a'
  2. group1 =='a'&group2 =='c'
  3. group2 =='c'
  4. group1 in ['a','b','c']

python multi-index dataframe pandas

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