我需要在给定条件下计算一些概率,因此我正在使用一个函数来获取包含给定值的行,例如:
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无法帮助我,因为我无法将运算符与运算符&
预先谢谢你的估计
我有一个数据框,其中包含最多一个字母和三个数字的代码,例如: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) 我有一个带有代码的数据框,在不同的时间(列)注册。像这样:
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)
我还没有找到任何有效的方法,只是逐行进行。
我有 2 个 pyspark 数据帧,我想检查一列的值是否存在于另一个数据帧的列中。
我只看到了如何过滤存在的值的解决方案(像这样),我需要做的是返回一列 true 或 false。
在 pandas 中,它会是这样的:
df_A["column1"].isin(df_B["column1"])
Run Code Online (Sandbox Code Playgroud)
提前致谢!
按值对数据帧索引的不同值进行分组或堆叠的最有效方法是什么?
这个 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)