gpt4 book ai didi

python - 在一列中查找所有相同的元素并创建一个新文件

转载 作者:太空宇宙 更新时间:2023-11-04 11:11:40 24 4
gpt4 key购买 nike

我有一个包含多列的 Excel 电子表格。其中一列具有相似的元素值。我想写入一个新的文本文件,其中包含 Column A 中的所有元素,这些元素在 Column C 中具有相似的元素。相似元素的一个示例是 C 列中的值包含美国。示例输出将是包含 A 列中的值的文本文件:

Column A   
1
2
5

例如:

Column A  Column B  Column C
1 3 USA
2 2 USA
3 5 China
5 7 USA

我尝试使用 openpyxl 和 pandas,但对逻辑感到困惑:

 import openpyxl
from openpyxl import *
import os

wb = openpyxl.load_workbook('C:/Users/unknown/Desktop/filessed.xlsx')
ws = wb.get_sheet_by_name('files sheet')
#wb = load_workbook(filename_and_path, read_only=True)
ws = wb.active

for row in ws.iter_rows(min_row=1, min_col=1, max_row=6, max_col=4):
for cell in row:
print(cell.value)
print()

如何使用 column C 名称作为文本文件的名称写入新文件,并在 Column A 中写入元素(如果它们与 C 列?

最佳答案

给定以下数据框:

df = pd.DataFrame([[1, 3, 'USA'], [2, 2, 'USA'], [3, 5, 'China'], [4 ,7, 'USA']], columns =['A','B','C'])

A B C
0 1 3 USA
1 2 2 USA
2 3 5 China
3 4 7 USA

试试这个单行代码,使用 grupby , applyto_csv :

df.groupby('C').apply(lambda row: row[['A']].to_csv(row.C.values[0]+'.csv', index=False))

这应该可以解决您的棘手问题。
提示:如果您想将文件保存为 excel 格式而不是 csv 格式,请参阅 to_excel Pandas 函数。

如果您稍后想将数据写入文件,您可以通过这种方式创建一个包含您感兴趣的数据的数据框:

df.groupby('C').apply(lambda row: row.A.values)
# output:
C
China [3]
USA [1, 2, 4]

或使用 groupby.agg :

df.groupby('C').agg({'A': lambda row: list(row.values)})

通过这种方式,您可以创建一个字典:

df.groupby('C').agg({'A': lambda row: list(row.values)}).to_dict()['A']
# output: {'China': [3], 'USA': [1, 2, 4]}

关于python - 在一列中查找所有相同的元素并创建一个新文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58084652/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com