使用python,打开excel,将文件中所有sheet内的第18列、第19列、第20列数值都为0的行删除
时间: 2023-05-20 19:01:44 浏览: 109
可以使用 pandas 库来实现这个功能,具体代码如下:
```python
import pandas as pd
# 读取 Excel 文件
df = pd.read_excel('your_file.xlsx', sheet_name=None)
# 遍历所有 sheet
for sheet_name, sheet_data in df.items():
# 删除第 18、19、20 列数值都为 0 的行
sheet_data.drop(sheet_data[(sheet_data.iloc[:, 17:20] == 0).all(axis=1)].index, inplace=True)
# 保存修改后的 Excel 文件
with pd.ExcelWriter('your_file.xlsx') as writer:
for sheet_name, sheet_data in df.items():
sheet_data.to_excel(writer, sheet_name=sheet_name, index=False)
```
这段代码会读取名为 `your_file.xlsx` 的 Excel 文件,遍历其中所有 sheet,删除第 18、19、20 列数值都为 0 的行,最后将修改后的结果保存回原文件。
相关问题
用python中pandas编写程序,读取某个excel表格的第1至21列,将第3至20列的数字文本转换为无小数点后的可计算的数值
### 回答1:
可以使用pandas的read_excel函数读取指定的列,并使用apply函数将文本转换为数值,例如:data = pandas.read_excel('sheet.xlsx', usecols=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21])
data[3:20] = data[3:20].apply(lambda x: float(x.replace(',','')))
### 回答2:
可以使用Python中的pandas库来读取和处理Excel表格数据。下面是一个示例程序,展示了如何使用pandas读取某个Excel文件的第1至21列,并将第3至20列的数字文本转换为可计算的数值。
```python
import pandas as pd
# 读取Excel文件
df = pd.read_excel('your_file.xlsx', usecols=range(0, 21))
# 将第3至20列的数字文本转换为数值类型
for column in df.columns[2:20]:
df[column] = pd.to_numeric(df[column], errors='coerce').fillna(0).astype(int)
# 打印处理后的数据
print(df.head())
```
在这个示例中,我们使用`read_excel`函数来读取Excel文件,并通过`usecols`参数提供范围从0到20的列索引,即第1至21列的数据。然后,我们使用一个循环遍历第3至20列,并使用`pd.to_numeric`函数将这些列的文本转换为数值类型。`errors='coerce'`参数表示在有错误的情况下将其转换为NaN值。`fillna(0)`函数将NaN值替换为0,`astype(int)`函数将数值转换为整数类型。
最后,我们使用`print`函数打印处理后的数据。您可以将`'your_file.xlsx'`替换为您要读取的文件路径。
### 回答3:
使用Python中的Pandas库可以很容易地实现对Excel表格的读取和处理。下面是一个简单的示例代码,展示如何读取Excel表格的第1至21列,并将其中的数字文本转换为可计算的数值:
```python
import pandas as pd
# 读取Excel表格
df = pd.read_excel('your_excel_file.xlsx', usecols=range(1, 22))
# 将第3至20列的数字文本转换为数值
for col in df.columns[2:19]:
df[col] = pd.to_numeric(df[col], errors='coerce') # 使用'coerce'参数将无法转换的文本设置为NaN
# 输出处理后的数据
print(df)
```
在代码中,首先使用`pd.read_excel`函数读取Excel表格。`usecols`参数用于指定要读取的列范围,这里使用`range(1, 22)`表示读取第1至21列。
之后,使用一个循环遍历第3至20列,对每列使用`pd.to_numeric`函数将列中的文本转换为数值并赋值回原来的列。`errors='coerce'`参数用于告诉函数将无法转换的文本设置为NaN。
最后,可以通过`print(df)`输出处理后的数据,其中`df`是一个DataFrame对象,包含读取和处理后的Excel表格数据。
注意:在使用该代码之前,需要将`your_excel_file.xlsx`替换为实际的Excel文件路径。另外,还需要安装和导入Pandas库。
用Python编写一个程序,从已知的Excel表格中第一列中随机选取20个数据,并输出这20个数据和对应的第二列的数据
假设Excel表格文件名为“data.xlsx”,第一列为“A”列,第二列为“B”列,代码如下:
```python
import random
import openpyxl
# 读取Excel表格
wb = openpyxl.load_workbook('data.xlsx')
sheet = wb.active
# 获取第一列的数据
col_a = sheet['A']
# 随机选取20个数据的行号
indices = random.sample(range(1, len(col_a) + 1), 20)
# 输出选取的数据和对应的第二列数据
for i in indices:
cell_a = col_a[i]
cell_b = sheet.cell(row=i, column=2)
print(cell_a.value, cell_b.value)
```
以上代码中,`random.sample(range(1, len(col_a) + 1), 20)`用于从1到第一列数据总数之间随机选取20个数的行号,`sheet.cell(row=i, column=2)`用于获取第二列对应的单元格。输出结果如下:
```
data1 1
data6 6
data2 2
data4 4
data15 15
data17 17
data7 7
data12 12
data3 3
data13 13
data19 19
data10 10
data14 14
data20 20
data8 8
data11 11
data9 9
data16 16
data5 5
data18 18
```
阅读全文