小编cs9*_*s95的帖子

布尔索引具有多个条件

我有一个Pandas DF,我需要过滤掉一些包含值== 0的行,用于特征'a'和特征'b'.

为了检查值,我运行以下命令:

DF1 = DF[DF['a'] == 0]
Run Code Online (Sandbox Code Playgroud)

返回正确的值.同样,通过这样做:

DF2 = DF[DF['b'] == 0]
Run Code Online (Sandbox Code Playgroud)

我可以看到特征'b'的0值.

但是,如果我尝试使用OR操作数在单行代码中组合这些2:

DF3 = DF[DF['a'] == 0 |  DF['b'] == 0]
Run Code Online (Sandbox Code Playgroud)

我明白了:

TypeError: cannot compare a dtyped [float64] array with a scalar of type [bool]
Run Code Online (Sandbox Code Playgroud)

这里发生了什么事?

python pandas

47
推荐指数
1
解决办法
4万
查看次数

Xcode 4插件开发

我一直在寻找这个地方,但我找不到任何东西.有谁知道在哪里可以找到有关如何创建Xcode 4插件的文档?

xcode plugins xcode4

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

合并pandas数据帧,其中一个值介于两个其他值之间

我需要在标识符和条件上合并两个pandas数据帧,其中一个数据帧中的日期在另一个数据帧中的两个日期之间.

Dataframe A有一个日期("fdate")和一个ID("cusip"):

在此输入图像描述

我需要将此与此数据帧B合并:

在此输入图像描述

A.cusip==B.ncusipA.fdate之间B.namedtB.nameenddt.

在SQL中这将是微不足道的,但我能看到如何在pandas中执行此操作的唯一方法是首先在标识符上无条件合并,然后在日期条件上进行过滤:

df = pd.merge(A, B, how='inner', left_on='cusip', right_on='ncusip')
df = df[(df['fdate']>=df['namedt']) & (df['fdate']<=df['nameenddt'])]
Run Code Online (Sandbox Code Playgroud)

这真的是最好的方法吗?似乎如果可以在合并中进行过滤以避免在合并之后但在过滤器完成之前具有可能非常大的数据帧,则会好得多.

python timespan join date-range pandas

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

替换整个DataFrame中的字符串/值

我有一个非常大的数据集,我想用数字替换字符串.我想对数据集进行操作,而不为数据集中的每个键(列)键入映射函数.(类似于fillna方法,但用特定值替换特定字符串).反正有没有这样做?

这是我的数据集的一个例子

data
   resp          A          B          C
0     1       poor       poor       good
1     2       good       poor       good
2     3  very good  very good  very good
3     4       bad        poor       bad 
4     5   very bad   very bad   very bad
5     6       poor       good   very bad
6     7       good       good       good
7     8  very good  very good  very good
8     9       bad        bad    very bad
9    10   very bad   very bad   very bad
Run Code Online (Sandbox Code Playgroud)

期望的结果:

 data
   resp  A  B  C
0      1  3 …
Run Code Online (Sandbox Code Playgroud)

python replace dataframe pandas

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

使用pd.eval()在pandas中进行动态表达式评估

目标和动机

pd.eval并且eval是pandas API套件中功能强大但被低估的功能,它们的使用远未完全记录或理解.小心适量,eval并且engine可以极大地简化代码,提高性能,并成为创建动态工作流的强大工具.

这个规范QnA的目的是让用户更好地理解这些功能,讨论一些鲜为人知的功能,如何使用它们,以及如何最好地使用它们,以及清晰易懂的示例.这篇文章将讨论的两个主要议题是

  1. 了解parser,df2x在争论pd.eval,以及它们如何被用来计算表达式
  2. 了解之间的差eval,eval并且engine,当每个功能是合适的用于动态执行.

这篇文章不能替代文档(答案中的链接),所以请完成它!


我将以这样的方式构建一个问题,以便开启对所支持的各种功能的讨论parser.

给出两个DataFrame

np.random.seed(0)
df1 = pd.DataFrame(np.random.choice(10, (5, 4)), columns=list('ABCD'))
df2 = pd.DataFrame(np.random.choice(10, (5, 4)), columns=list('ABCD'))

df1
   A  B  C  D
0  5  0  3  3
1  7  9  3  5
2  2  4  7  6
3  8  8  1  6
4  7  7  8  1

df2
   A  B  C …
Run Code Online (Sandbox Code Playgroud)

python eval dataframe pandas

45
推荐指数
2
解决办法
7156
查看次数

在两个Pandas数据帧中查找公共行(交集)

假设我有这样的格式(叫他们两个dataframes df1df2):

+------------------------+------------------------+--------+
|        user_id         |      business_id       | rating |
+------------------------+------------------------+--------+
| rLtl8ZkDX5vH5nAx9C3q5Q | eIxSLxzIlfExI6vgAbn2JA |      4 |
| C6IOtaaYdLIT5fWd7ZYIuA | eIxSLxzIlfExI6vgAbn2JA |      5 |
| mlBC3pN9GXlUUfQi1qBBZA | KoIRdcIfh3XWxiCeV1BDmA |      3 |
+------------------------+------------------------+--------+
Run Code Online (Sandbox Code Playgroud)

我希望得到的是有一个共同的所有行的数据帧user_iddf1df2.(即,如果user_id是在两个df1df2,在输出中包括数据帧的两行)

我可以想出很多方法来解决这个问题,但它们都让我感到笨拙.例如,我们可以user_id在每个数据帧中找到所有唯一的s,创建一组,找到它们的交集,用结果集过滤两个数据帧并连接两个过滤的数据帧.

也许这是最好的方法,但我知道熊猫很聪明.有更简单的方法吗?我看过了,merge但我认为这不是我需要的.

python dataframe intersect pandas

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

为什么这个类可变?

public class Test {
    private final String url;
    public Test(String url) {
        this.url = url;
    }
    public String getUrl() {
        return url;
    }
}
Run Code Online (Sandbox Code Playgroud)

Test类有:

  1. 只有一个私有和最终的实例变量.
  2. 没有二传手.
  3. 初始化实例变量的唯一方法是通过构造函数.
  4. 一旦设置了URL,即使在getUrl中也不能修改它,即使该方法被Test的任何子类覆盖.

但是我正在阅读的一本书说上面的Test类是可变的,因为:

  • 这两个类都不是最终的,因此它可以扩展,并且子类可以覆盖实例方法.但Test类实际上没有构造函数以外的任何实例方法.

  • 构造函数也不是私有的.

你能帮我理解为什么Test类是可变的吗?

java immutability

41
推荐指数
1
解决办法
2740
查看次数

这些运算符是什么意思(**,^,%,//)?

除了标准+,-,*/运营商; 但什么是这些均值(**,^,%,//)?

>>> 9+float(2) # addition
11.0
>>> 9-float(2) # subtraction
7.0
>>> 9*float(2) # multiplication
18.0
>>> 9/float(2) # division
4.5
>>>
>>> 9**float(2) # This looks like a square, (i.e. power 2) 
81.0
>>> 9**float(3) # So ** is equivalent to `math.pow(x,p)` ?
729.0
Run Code Online (Sandbox Code Playgroud)

又如何^操作?

>>> 9^int(2) # What is `^` in `x^u` , it only allows `int` for `u` …
Run Code Online (Sandbox Code Playgroud)

python math native operators

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

将某些列保留在pandas DataFrame中,删除其他所有内容

说我有一个数据表

    1  2  3  4  5  6 ..  n
A   x  x  x  x  x  x ..  x
B   x  x  x  x  x  x ..  x
C   x  x  x  x  x  x ..  x
Run Code Online (Sandbox Code Playgroud)

我想减少它,以便我只有第3列和第5列删除所有其他并保持结构.我怎么能用熊猫做到这一点?我想我理解如何删除单个列,但我不知道如何保存一些选择并删除所有其他列.

python pandas

40
推荐指数
3
解决办法
4万
查看次数

将整数分成两个(几乎)相等的部分

我需要将一个整数分成两个数字.有点像除以2但我只想要整数组件,例如:

6 = 3 and 3
7 = 4 and 3
Run Code Online (Sandbox Code Playgroud)

我尝试了以下,但我不确定它是最好的解决方案.

var number = 7;
var part1 = 0;
var part2 = 0;

if((number % 2) == 0) {
    part1 = number / 2;
    part2 = number / 2;
}
else {
    part1 = parseInt((number / 2) + 1);
    part2 = parseInt(number / 2);
}
Run Code Online (Sandbox Code Playgroud)

这样做我想要的,但我认为这段代码不干净.

有更好的方法吗?

javascript math

40
推荐指数
3
解决办法
4946
查看次数