pandas 筛选excel小数点前两位
时间: 2023-10-02 10:03:58 浏览: 67
可以使用 pandas 的 round() 方法来将小数点保留到指定位数,然后再进行筛选。
假设有以下 excel 数据:
| | A | B |
|---|------|------|
| 0 | 1.23 | abc |
| 1 | 2.34 | def |
| 2 | 3.45 | ghi |
| 3 | 4.56 | jkl |
代码如下:
import pandas as pd
# 读取 excel 数据
df = pd.read_excel('data.xlsx')
# 将 A 列保留小数点前两位
df['A'] = df['A'].round(2)
# 筛选小数点前两位为 1.23 的行
result = df[df['A'] == 1.23]
print(result)
输出结果为:
A B
0 1.23 abc
可以看到,通过 round() 方法将 A 列的小数点保留到了两位,并且通过筛选找到了小数点前两位为 1.23 的行。
相关问题
pandas 匹配excel小数点前两位
可以使用 pandas 的 apply 方法和 lambda 表达式来实现匹配 excel 小数点前两位的操作。具体步骤如下:
1. 读取 Excel 文件为 pandas DataFrame 对象。
2. 对 DataFrame 中的数值列使用 apply 方法和 lambda 表达式,将小数点前两位取出来并转换为字符串类型。
3. 将得到的字符串类型的小数点前两位作为新的列添加到 DataFrame 中。
下面是示例代码:
```python
import pandas as pd
# 读取 Excel 文件
df = pd.read_excel('data.xlsx')
# 定义一个匹配小数点前两位的函数
def match_decimal(num):
return str(int(num * 100))[:2]
# 对数值列应用匹配函数,并将结果添加为新的列
for col in df.select_dtypes(include=['float', 'int']).columns:
df[col+'_2dp'] = df[col].apply(lambda x: match_decimal(x))
# 输出结果
print(df.head())
```
在上面的示例代码中,我们首先使用 `pd.read_excel()` 方法读取了一个名为 `data.xlsx` 的 Excel 文件为 pandas DataFrame 对象。然后,我们定义了一个名为 `match_decimal()` 的匹配小数点前两位的函数,它的作用是将小数点前两位取出来并转换为字符串类型。接着,我们使用 `df.select_dtypes(include=['float', 'int'])` 方法选择所有数值类型的列,并使用 for 循环对每一列应用匹配函数,并将得到的结果添加为新的列。最后,我们使用 `df.head()` 方法输出了前五行的结果。
pandas 筛选excel某表头小数点前两位数据
可以使用 pandas 的 str 属性和正则表达式来实现:
```python
import pandas as pd
# 读取 Excel 文件
df = pd.read_excel('example.xlsx')
# 筛选表头小数点前两位数据
pattern = r'^\d{1,2}\.' # 匹配小数点前两位数字
mask = df.columns.str.contains(pattern)
df_filtered = df.loc[:, mask]
# 输出筛选结果
print(df_filtered)
```
其中,`df.columns.str.contains(pattern)` 返回一个布尔型数组,表示每个表头是否匹配正则表达式。使用 `df.loc[:, mask]` 把匹配的表头所在的列筛选出来。