小编And*_*nte的帖子

在python中泛化一个函数

我需要在给定条件下计算一些概率,因此我正在使用一个函数来获取包含给定值的行,例如:

df:
col1 col2 col3
 A    B    C
 H    B    C
 A    B
 A    H    C
Run Code Online (Sandbox Code Playgroud)

这是功能

def existence(x):
    return df[df.isin([x]).any(1)]
Run Code Online (Sandbox Code Playgroud)

因此,如果我这样做:

in:
existence('A')

out:
col1 col2 col3
 A    B    C
 A    B
 A    H    C
Run Code Online (Sandbox Code Playgroud)

我需要对该函数进行一般化,以便可以给它提供多个参数并执行以下操作:

existence(x, y):
    return df[df.isin([x]).any(1) & df.isin([y]).any(1)]
Run Code Online (Sandbox Code Playgroud)

或广义

existence(x1, x2,..., xn):
    return df[df.isin([x1]).any(1) & df.isin([x2]).any(1) & ... & df.isin([xn]).any(1)]

Run Code Online (Sandbox Code Playgroud)

我认为args无法帮助我,因为我无法将运算符与运算符&

预先谢谢你的估计

python pandas

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

给定条件,修改数据框的值

我有一个数据框,其中包含最多一个字母和三个数字的代码,例如:A478。一些代码只有一个或两个数字,但是我需要在所有具有三个数字的值之前加一个点,以将它们转换为以下形式:

A213至A21.3

简而言之,我需要以这种方式转换df:

id code1 code2 code3 code4
0  A099  B25   A022  NaN
1  B21   J2    Z23   H355
2  C212 C03  NaN   NaN
Run Code Online (Sandbox Code Playgroud)

id code1 code2 code3 code4
0  A09.9 B25   A02.2 NaN
1  B21   J2    Z23   H35.5
2  C21.2 C03  NaN   NaN
Run Code Online (Sandbox Code Playgroud)

我尝试使用类似的方法,但是语法无效,所以我不知道如何评估只有三位数字(或4个str)时才发生的情况。

df.apply(lambda x: x.str[:3]+'.'+x.str[3:] if len(x) == 4)
Run Code Online (Sandbox Code Playgroud)

python pandas

2
推荐指数
1
解决办法
55
查看次数

删除数据框中具有重复值的行

我有一个带有代码的数据框,在不同的时间(列)注册。像这样:

   time1 time2 time3  time4
0  A09.9 B25   A02.2  NaN
1  B21   J2    Z23.1  J2
2  C21.2 C03   NaN    NaN
Run Code Online (Sandbox Code Playgroud)

我需要删除任何列中具有重复值的行,因此在这种情况下,它将是第二行。

   time1 time2 time3  time4
0  A09.9 B25   A02.2  NaN
1  C21.2 C03   NaN    NaN
Run Code Online (Sandbox Code Playgroud)

我还没有找到任何有效的方法,只是逐行进行。

python pandas

2
推荐指数
1
解决办法
36
查看次数

检查 pyspark df 列的值是否存在于其他 pyspark df 列中

我有 2 个 pyspark 数据帧,我想检查一列的值是否存在于另一个数据帧的列中。

我只看到了如何过滤存在的值的解决方案(像这样),我需要做的是返回一列 true 或 false。

在 pandas 中,它会是这样的:

df_A["column1"].isin(df_B["column1"])
Run Code Online (Sandbox Code Playgroud)

提前致谢!

python dataframe apache-spark apache-spark-sql pyspark

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

使用列的唯一值作为索引对数据框进行分组

按值对数据帧索引的不同值进行分组或堆叠的最有效方法是什么?

这个 df:

color   alert

blue    A
blue    B
red     A
green   C
Run Code Online (Sandbox Code Playgroud)

到:

color   alert

blue    [A, B]
red     A
green   C
Run Code Online (Sandbox Code Playgroud)

python pandas

0
推荐指数
1
解决办法
37
查看次数