假设要提取的 Excel 表格文件名为 "data.xlsx",要提取的列为 "A" 和 "B",要求在新的一列 "Max Count" 中存储A列和B列数据中最大值的重复个数
时间: 2023-07-19 21:17:07 浏览: 59
好的,我理解了你的问题。你可以使用 Python 中的 Pandas 库来读取 Excel 表格数据,并计算出每行 A 列和 B 列数据的最大值,并将其存储到新的一列 "Max Count" 中。以下是一个示例代码:
```python
import pandas as pd
# 读取 Excel 表格数据
df = pd.read_excel('data.xlsx')
# 计算每行 A 列和 B 列数据的最大值
max_values = df[['A', 'B']].max(axis=1)
# 统计最大值的重复个数,并存储到新的一列 "Max Count" 中
df['Max Count'] = max_values.groupby(max_values).transform('count')
# 输出结果
print(df)
```
在运行以上代码之后,你可以在终端或者 Jupyter Notebook 等环境中查看处理后的结果。希望这个示例代码对你有所帮助!
相关问题
Python用pandas提取Excel表中某几列中每行数据中最大值的重复个数并存入新的一列
可以使用 Pandas 中的 apply 函数结合 lambda 表达式来实现。
假设要提取的 Excel 表格文件名为 "data.xlsx",要提取的列为 "A" 和 "B",要求在新的一列 "Max Count" 中存储每行数据中最大值的重复个数,则可以按照以下步骤操作:
首先,导入 Pandas 库并读取 Excel 表格文件:
```python
import pandas as pd
df = pd.read_excel("data.xlsx")
```
接下来,定义一个函数用于计算每行数据中最大值的重复个数:
```python
def count_max(row):
max_val = max(row["A"], row["B"])
return row[row == max_val].count()
```
然后,使用 apply 函数和 lambda 表达式将该函数应用到每一行数据上,并将结果存储到新的一列 "Max Count" 中:
```python
df["Max Count"] = df.apply(lambda row: count_max(row), axis=1)
```
最后,将处理后的数据保存到 Excel 表格文件中:
```python
df.to_excel("output.xlsx", index=False)
```
这样就能够提取 Excel 表格中某几列中每行数据中最大值的重复个数并存入新的一列了。
import openpyxl # 打开 Excel 文件 data = openpyxl.load_workbook('cal.xlsx') rtable wtable.append([str(cell.value) if cell.value is not None else '' for cell in row]) AttributeError: 'str' object has no attribute 'append' = data.active # 创建新的 Excel 文件 wbook = openpyxl.Workbook() wtable = wbook.active.title = 'sheet1' count = 0 keyword = "叛徒" # 遍历每一行数据 for row in rtable.iter_rows(min_row=1, max_col=65, max_row=rtable.max_row): # 检查是否包含关键字 if any(keyword in str(cell.value) for cell in row): # 检查是否是空行 if all(cell.value == None for cell in row): continue # 复制该行数据到新的表格中 wtable.append([str(cell.value) if cell.value is not None else '' for cell in row]) count += 1 print(count) # 保存新表格 wbook.save('clh.xlsx')
这段代码的问题在于在创建新的 Excel 文件后,将它的标题(title)赋值给了一个字符串变量,而不是工作表对象。因此,在后续的代码中,将该字符串变量传递给了“append”方法,导致了这个错误。你可以将代码修改为以下形式:
```
# 创建新的 Excel 文件
wbook = openpyxl.Workbook()
wtable = wbook.active
wtable.title = 'sheet1'
count = 0
keyword = "叛徒"
# 遍历每一行数据
for row in rtable.iter_rows(min_row=1, max_col=65, max_row=rtable.max_row):
# 检查是否包含关键字
if any(keyword in str(cell.value) for cell in row):
# 检查是否是空行
if all(cell.value == None for cell in row):
continue
# 复制该行数据到新的表格中
wtable.append([str(cell.value) if cell.value is not None else '' for cell in row])
count += 1
print(count)
# 保存新表格
wbook.save('clh.xlsx')
```
这样修改后,应该就可以正常运行了。