用Python写一段代码,读取xlsx中violation列的数据,并把相同数据的记录的序号按照顺序进行排列
时间: 2023-11-27 10:55:16 浏览: 65
假设你的 xlsx 文件名为 `data.xlsx`,且数据表格在第一个 Sheet 中,那么可以使用 `pandas` 库和以下代码实现你的需求:
```python
import pandas as pd
# 读取数据
df = pd.read_excel('data.xlsx', sheet_name=0)
# 按照 violation 列进行排序,并且保留原始序号
df['index'] = df.index
df = df.sort_values(by='violation')
df.reset_index(drop=True, inplace=True)
# 打印排序后的数据表格
print(df[['index', 'violation']])
```
在上述代码中,首先使用 `pandas` 库中的 `read_excel()` 函数读取 xlsx 文件中的第一个 Sheet 中的数据表格,并存储到 `df` 变量中。
然后,我们为数据表格添加了一列名为 `index` 的新列,用来存储每行数据的原始序号。接着,我们使用 `sort_values()` 函数按照 `violation` 列进行排序,同时保留原始序号。最后,我们使用 `reset_index()` 函数将数据表格中的序号重置为从 0 开始的顺序,以便后续处理。
最后,我们使用 `print()` 函数打印排序后的数据表格中的 `index` 和 `violation` 列。
相关问题
用Python写一段代码,读取xlsx中violation列的数据,并把相同数据的记录按照顺序进行排列
假设我们要读取的Excel文件名为`data.xlsx`,其中包含一个名为`Sheet1`的工作表,我们可以使用`pandas`模块来读取数据并进行处理。具体实现如下:
```python
import pandas as pd
# 读取Excel文件
df = pd.read_excel('data.xlsx', sheet_name='Sheet1')
# 获取violation列的数据,并按顺序排列
violation_data = df['violation'].sort_values()
# 输出结果
print(violation_data)
```
这段代码首先使用`pandas`模块中的`read_excel`函数读取Excel文件,并指定读取的工作表为`Sheet1`。然后,使用`df['violation']`来获取`violation`列的数据,并使用`sort_values`函数按照顺序进行排列。最后,将结果输出。
用Python写一段代码,读取xlsx表格中violation列中的字符,把相同字符的记录提取出来,并且把这些记录的序号按顺序排列
假设我们要读取的Excel表格名为`example.xlsx`,其中的violation列在第二列(B列),代码如下:
```python
import openpyxl
# 打开Excel文件
wb = openpyxl.load_workbook('example.xlsx')
# 选择第一个工作表
ws = wb.active
# 创建一个字典,用于存储不同的violation及其对应的序号列表
violation_dict = {}
# 遍历每一行,提取相同violation的记录的序号
for row in ws.iter_rows(min_row=2, values_only=True):
violation = row[1] # 第二列为violation列
index = row[0] # 第一列为序号列
if violation in violation_dict:
violation_dict[violation].append(index)
else:
violation_dict[violation] = [index]
# 按照序号顺序输出violation及其对应的序号列表
for violation, index_list in sorted(violation_dict.items(), key=lambda x: x[1][0]):
print(f"{violation}: {', '.join(map(str, index_list))}")
```
代码中,我们首先用`openpyxl`库打开Excel文件,并且选择第一个工作表。然后,我们遍历每一行,提取violation和序号,并且将相同violation的记录的序号存储到一个字典中。最后,我们按照序号顺序输出字典中的内容。
阅读全文