python中if怎么输入,Python-Excel中IF语句的输入

下面是Python中实现这一点的方法列表(并非详尽无遗)。如果你熟悉Pandas,它是一个数据操作和分析库。NumPy是pandas大量使用的一个数学计算框架。在

从概念上讲,pandas.DataFrame与Excel表格非常相似。这是一个非常灵活的收集/数据结构。让我们构造一个只有一列的数据帧:>>> import numpy as np

>>> import pandas as pd

>>> df = pd.DataFrame({'a': np.random.randn(10)})

>>> df

a

0 0.829202

1 -2.722945

2 0.877674

3 0.981782

4 0.398093

5 -0.593295

6 0.871504

7 0.439916

8 1.026697

9 -0.063484

我用np.random.randn生成一个随机数序列。在Note that if you don't have access to third-party libraries, you can also store these data in a list or other built-in collection. Pandas is kind of the best tool, IMO, for this work, however.

NumPy示例

让我们看看一个NumPy解决方案。我们可以使用numpy.where(缩写为np.where)以与Excel基本相同的方式操作IF,您习惯于:

^{pr2}$

现在我们可以将一个NumPy数组calc分配回数据帧df,如果我们愿意:>>> df['calc'] = calc

>>> df

a calc

0 0.829202 0.570139

1 -2.722945 7.414430

2 0.877674 0.676083

3 0.981782 0.946336

4 0.398093 0.063089

5 -0.593295 0.351999

6 0.871504 0.661924

7 0.439916 0.085135

8 1.026697 1.082248

9 -0.063484 0.004030

纯Python示例:>>> calc = [x ** 2 if x < 0 else x ** 3 for x in df['a']]

>>> calc

[0.5701387154526354, 7.414429614316651, 0.6760833798456796, 0.9463357209355919, 0.0630887661523053, 0.3519990516487755, 0.6619240363210077, 0.08513502375096661, 1.0822477332767624, 0.004030185858203847]

>>> df['calc'] = calc

>>> df

a calc

0 0.829202 0.570139

1 -2.722945 7.414430

2 0.877674 0.676083

3 0.981782 0.946336

4 0.398093 0.063089

5 -0.593295 0.351999

6 0.871504 0.661924

7 0.439916 0.085135

8 1.026697 1.082248

9 -0.063484 0.004030

这个纯Python示例使用通常被称为“三元”运算符的东西,即x ** 2 if x < 0 else x ** 3的东西。这句话只是一种更简洁的“Python”式的表达方式:>>> calc = []

>>> for x in df['a']:

... if x < 0:

... calc.append(x ** 2)

... else:

... calc.append(x ** 3)

...

>>> calc

[0.5701387154526354, 7.414429614316651, 0.6760833798456796, 0.9463357209355919, 0.0630887661523053, 0.3519990516487755, 0.6619240363210077, 0.08513502375096661, 1.0822477332767624, 0.004030185858203847]

你经常会看到前一种方法——“列表理解法”,因为它比后一种方法更简洁。然而,从输出的角度来看,它们是等价的。在

我们还可以从时间角度测试这些方法:>>> import time

>>> N = 100000

>>>

>>> def test_numpy():

... t0 = time.time()

... for _ in range(N):

... calc = np.where(df['a'] < 0, df['a'] ** 2, df['a'] ** 3)

... t1 = time.time()

... return t1 - t0

...

>>> def test_list():

... t0 = time.time()

... for _ in range(N):

... calc = [x ** 2 if x < 0 else x ** 3 for x in df['a']]

... t1 = time.time()

... return t1 - t0

...

>>> test_numpy()

34.89216589927673

>>> test_list()

1.9015109539031982

似乎list方法要快得多。更深入地研究一下使用dis库,我们可以看到np.where方法在执行哪些操作方面有更多的开销:>>> import dis

>>> dis.dis("np.where(df['a'] < 0, df['a'] ** 2, df['a'] ** 3)")

1 0 LOAD_NAME 0 (np)

2 LOAD_ATTR 1 (where)

4 LOAD_NAME 2 (df)

6 LOAD_CONST 0 ('a')

8 BINARY_SUBSCR

10 LOAD_CONST 1 (0)

12 COMPARE_OP 0 (

14 LOAD_NAME 2 (df)

16 LOAD_CONST 0 ('a')

18 BINARY_SUBSCR

20 LOAD_CONST 2 (2)

22 BINARY_POWER

24 LOAD_NAME 2 (df)

26 LOAD_CONST 0 ('a')

28 BINARY_SUBSCR

30 LOAD_CONST 3 (3)

32 BINARY_POWER

34 CALL_FUNCTION 3

36 RETURN_VALUE

>>> dis.dis("[x ** 2 if x < 0 else x ** 3 for x in df['a']]")

1 0 LOAD_CONST 0 ( at 0x10fdcd1e0, file "", line 1>)

2 LOAD_CONST 1 ('')

4 MAKE_FUNCTION 0

6 LOAD_NAME 0 (df)

8 LOAD_CONST 2 ('a')

10 BINARY_SUBSCR

12 GET_ITER

14 CALL_FUNCTION 1

16 RETURN_VALUE

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 是否存在重复。 好的,这是一道关于Python的问题。你可以使用Python的pandas库的duplicated()函数来判断Excel表格的数据是否存在重复。具体实现可以参考以下代码: ```python import pandas as pd # 读取Excel表格数据 df = pd.read_excel('file.xlsx') # 判断重复数据 dup = df.duplicated() # 输出结果 if dup.any(): print("存在重复数据") else: print("不存在重复数据") ``` 这段代码会读取名为file.xlsx的Excel表格,使用duplicated()函数判断数据是否存在重复,并根据结果输出不同的提示信息。需要注意的是,你需要先安装pandas库才能使用这段代码。 ### 回答2: Python有多种库可以用来读取和处理Excel表格的数据,比如pandas、xlrd等。 以使用pandas库为例,首先需要通过安装命令`pip install pandas`来安装pandas库。安装完成后,我们可以使用以下代码来判断Excel表格的数据。 首先,导入pandas库,并使用`read_excel`函数读取Excel文件: ```python import pandas as pd data = pd.read_excel('文件路径/文件名.xlsx') ``` 接下来,可以使用不同的判断语句对读取到的数据进行判断。以下是几个示例: 1. 判断某一列是否存在特定的数值: ```python if '特定数值' in data['列名']: print("存在特定的数值") else: print("不存在特定的数值") ``` 2. 判断某一行是否存在特定的数值: ```python if '特定数值' in data.iloc[行号]: print("存在特定的数值") else: print("不存在特定的数值") ``` 3. 判断某一单元格的数值是否满足某个条件: ```python if data.loc[行号, '列名'] > 10: print("该单元格值大于10") else: print("该单元格值小于等于10") ``` 以上代码,'文件路径/文件名.xlsx'需要替换为你实际的Excel文件路径和文件名,'列名'和行号需要替换为你实际要进行判断的列名和行号。 以上是使用pandas进行Excel数据判断的简单示例,你可以根据实际需求进行更复杂的判断处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值