相关疑难解决方法(0)

使用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数据框中的多个条件下删除行

我的df有3栏

df = pd.DataFrame({"col_1": (0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0), 
                   "col_2": (0.0, 0.24, 1.0, 0.0, 0.22, 3.11, 0.0),
                    "col_3": ("Mon", "Tue", "Thu", "Fri", "Mon", "Tue", "Thu")}) 
Run Code Online (Sandbox Code Playgroud)

我想删除df.col_1为1.0且df.col_2为0.0的行。因此,我会得到:

df = pd.DataFrame({"col_1": (0.0, 0.0, 1.0, 0.0, 1.0), 
                   "col_2": (0.0, 0.24, 1.0, 0.22, 3.11),
                    "col_3": ("Mon", "Tue", "Thu", "Mon", "Tue")})
Run Code Online (Sandbox Code Playgroud)

我试过了:

df_new = df.drop[df[(df['col_1'] == 1.0) & (df['col_2'] == 0.0)].index]
Run Code Online (Sandbox Code Playgroud)

它给了我错误:

'method' object is not subscriptable
Run Code Online (Sandbox Code Playgroud)

任何想法如何解决上述问题?

python pandas

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

Pandas 中的多个条件

我正在使用的表

这是我正在使用的表

我需要使用 'Duration'>70 和 'End Terminal'==10 访问数据点因此我尝试过

kj[kj['Duration']>70] 
kj[kj['End Terminal'] == 10]
Run Code Online (Sandbox Code Playgroud)

上面的命令单独工作正常,但是当我将它们作为:

kj[kj['End Terminal'] == 10] & kj[kj['Duration']>70] 
Run Code Online (Sandbox Code Playgroud)

有一个错误,因此如何在 Pandas-Python 的一个语句中使用这两个条件

python pandas

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

标签 统计

pandas ×3

python ×3

dataframe ×1

eval ×1