国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

文件按關(guān)鍵字分組-切割-染色-寫入excel

這篇具有很好參考價值的文章主要介紹了文件按關(guān)鍵字分組-切割-染色-寫入excel。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1. 背景

??????? 針對下面的文件data.csv,首先根據(jù)fid進(jìn)行排序,然后分組,使相同fid的記錄放到同一個excel文件中,并對每列重復(fù)的數(shù)據(jù)元素染上紅色。

fid,user_id
-1000078398032092029,230410010036537520
-1000078398032092029,230423010026993942
-1000078398032092029,230505010027684603
-101241766345369238,210911010005526495
-101241766345369238,211017010017923011
-101241766345369238,230113010029633164
-101241766345369238,230514010028256452
-101241766345369238,230518010036813773
-1045165137456710,220401010038956742
-1045165137456710,220401010038956742
-1050918014514687463,210805010001898014
-1050918014514687463,210805010001898014
-111(手動添加一個結(jié)束標(biāo)志)

2. 分組切割文件

import pandas as pd
pd.set_option('display.max_rows', None)

# 根據(jù)fid對文件進(jìn)行分割,每個fid一個文件
def split_df_by_fid():
    df = pd.read_csv('data.csv', dtype=str)
    row_split_list = []  # 記錄分割點索引
    current_fid = '-1000078398032092029'  # 第一個fid
    start = 0
    end = start
    cnt = 1  # 記錄當(dāng)前是第幾個分割子文件
    for fid in df['fid']:
        if fid != current_fid:
            row_split_list.append((start, end))
            # 當(dāng)前fid組寫入一個新文件
            df[start:end].to_csv('data_split/' + str(cnt) + '.csv', index=0)
            cnt += 1
            current_fid = fid
            start = end
        end += 1
    print("總文件數(shù): ", len(row_split_list))
    print(row_split_list)
    # [(0, 3), (3, 8), (8, 10), (10, 12)]

輸出

文件按關(guān)鍵字分組-切割-染色-寫入excel,python,excel,python

3. 染色-寫入excel

1. 找到同列重復(fù)元素

def group_by_find_duplicate_values(group_df: pd.DataFrame, col: str) -> list:
    value_counts = group_df[col].value_counts().reset_index()
    return value_counts[value_counts[col] > 1]['index'].to_list()

2. 插入圖片

def inset_a_img(row_index, col_index, img_name):
    image_path = os.path.join("data_img/", img_name.replace('/', '_'))
    h, w, *_ = cv2.imread(image_path).shape
    scale = CEIL_HEIGHT * 1.3 / h
    SHEET.insert_image(row_index, col_index, image_path,  # x_offset可調(diào)整x軸圖片偏移
                       {'x_offset': 0, 'y_offset': 0, 'x_scale': scale, 'y_scale': scale, 'positioning': 1})

3. 同列相同元素染色

# -*- coding: utf-8 -*-
import os
import cv2
import tqdm
import pandas as pd
import xlsxwriter
CEIL_HEIGHT = 156

def write_color():
    df = pd.read_csv(input_file, dtype=str)
    for i, col in enumerate(df.columns):
        SHEET.write(0, i, col)  # 第0行第i列插入表頭字段
    try:
        for i, line in tqdm.tqdm(enumerate(df.itertuples())):  # tqdm: 顯示進(jìn)度條
            temp_df = df[df['fid'] == line.fid]
            for j, col in enumerate(df.columns):
                duplicate_values = group_by_find_duplicate_values(temp_df, col)
                content = str(df.iloc[i, j])
                # 染色
                cell_format = BOOK.add_format({'font_color': 'red' if (content in duplicate_values and j > 0) else 'black'})
                if col not in ('face_path', 'ocr_path'):
                    # SHEET.write(*(i + 1, j), content, cell_format)
                    SHEET.write(i+1, j, content, cell_format)
                else:
                    if col == 'face_path' and not pd.isna(line.face_path):
                        inset_a_img(i+1, j, line.face_path)  # 為Nan的置空,不寫入圖片
                    if col == 'ocr_path' and not pd.isna(line.ocr_path):
                        inset_a_img(i+1, j+1-1, line.ocr_path)
        BOOK.close()
    except Exception as e:
        print(e)


if __name__ == '__main__':
    for file in os.listdir('data_split'):
        input_file = 'data_split/' + file
        output_file = 'data_split_xlsx/' + file.replace('csv', 'xlsx')
        BOOK = xlsxwriter.Workbook(output_file)
        SHEET = BOOK.add_worksheet('sheet1')
        SHEET.set_default_row(CEIL_HEIGHT)
        SHEET.set_column(0, 60, 25)  # 分別為要修改的起始列,終止列,設(shè)置的列寬
        write_color()

輸出

文件按關(guān)鍵字分組-切割-染色-寫入excel,python,excel,python

文件按關(guān)鍵字分組-切割-染色-寫入excel,python,excel,python文章來源地址http://www.zghlxwxcb.cn/news/detail-613896.html

到了這里,關(guān)于文件按關(guān)鍵字分組-切割-染色-寫入excel的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 使用VSCode在文件中查找關(guān)鍵字

    在使用VSCode編輯器時,經(jīng)常需要在文件中查找特定的或文本。VSCode提供了強大的搜索功能,可以幫助我們快速定位并找到所需的內(nèi)容。本文將介紹如何在VSCode中進(jìn)行搜索。 在VSCode中查找的方法如下: 打開目標(biāo)文件:首先,打開你想要在其中進(jìn)行搜

    2024年02月04日
    瀏覽(116)
  • 使用less命令搜索文件中的關(guān)鍵字

    使用less命令搜索文件中的關(guān)鍵字

    less 與 more 類似,less 可以隨意瀏覽文件,支持翻頁和搜索,支持向上翻頁和向下翻頁。 語法 less [參數(shù)] 文件 參數(shù)說明: -b 緩沖區(qū)大小 設(shè)置緩沖區(qū)的大小 -e 當(dāng)文件顯示結(jié)束后,自動離開 -f 強迫打開特殊文件,例如外圍設(shè)備代號、目錄和二進(jìn)制文件 -g 只標(biāo)志最后搜索的關(guān)鍵

    2024年02月12日
    瀏覽(95)
  • linux如何查詢目錄文件中是否包含某個關(guān)鍵字

    在 Linux 系統(tǒng)中,可以使用 grep 命令來查詢目錄文件中是否包含某個。 例如,如果你想查詢當(dāng)前目錄下的所有文件中是否包含 \\\"keyword\\\",可以使用以下命令: 在這個命令中, . 表示當(dāng)前目錄, -r 表示遞歸地搜索目錄下的所有文件。 如果有任何文件包含 \\\"k

    2024年02月11日
    瀏覽(18)
  • Linux命令_grep & 快速查找關(guān)鍵字、文件名

    Linux命令_grep & 快速查找關(guān)鍵字、文件名

    目錄 1. 語法 1.1. 常用參數(shù) 2. 常見用法 2.1. 查找 2.2. 取反 2.3. 額外輸出上下 2 行 2.4. 額外輸出上面 1 行 2.5. 額外輸出下面 1 行 2.6. 輸出總行數(shù) 2.7. 輸出行號 2.8. 忽略大小寫 2.9. 正則匹配 3.組合使用 4.?文本三劍客其他命令 ? ? ? ? ? ? ? ? ?

    2024年01月17日
    瀏覽(113)
  • linux如何查詢某個關(guān)鍵字所處在哪個文件夾的哪個文件下

    linux如何查詢某個所處在哪個文件夾的哪個文件下 linux如何查詢文件夾中的某個文件中的 你要知道是什么 在 Linux 中,可以使用 grep 命令來查詢文件夾中的某個文件中的。 grep 命令的語法格式如下: 其中,OPTIONS 是可選的命令選項,PATTERN 是需要搜索

    2024年02月09日
    瀏覽(83)
  • linux通過grep根據(jù)關(guān)鍵字查找日志文件上下文

    grep -C 10 keyword catalina.out 顯示file文件中匹配keyword字串那行以及上下10行 grep -B 10 keyword catalina.out 顯示keyword及前10行 grep -A 10 keyword catalina.out 顯示keyword及后10行 grep -C 10 keyword catalina.out aaa.txt grep -o keyword catalina.out | wc -l grep -c keyword catalina.out grep -V

    2024年02月16日
    瀏覽(94)
  • Java文件操作(遍歷目錄中的文件,找到并刪除有指定關(guān)鍵字的文件)

    對于通過java對文件繼續(xù)讀取和寫入的操作推薦看讀取文件和寫入文件操作 ????????掃描指定目錄中的文件,并找到名稱中包含指定字符的所有普通文件(不包括目錄),并后續(xù)詢問用戶是否要刪除該文件 ? ? ? ? 實際上題目就要求我們對一個指定的目錄下的文件進(jìn)行遍歷

    2024年02月13日
    瀏覽(29)
  • 文件名替換,關(guān)鍵字替換改名:不同路徑中的多個文件如何批量重命名

    文件名替換,關(guān)鍵字替換改名:不同路徑中的多個文件如何批量重命名

    在日常生活和工作中,我們經(jīng)常需要處理大量的文件,包括重命名、分類、整理等操作。其中,批量重命名不同路徑中的多個文件是一項非常常見的任務(wù)。本文將介紹云炫文件管理器常見的批量重命名方法:文件名替換改名,幫助您輕松應(yīng)對不同路徑中的多個文件的重

    2024年02月08日
    瀏覽(61)
  • 8.29 auto關(guān)鍵字 lambda 類型轉(zhuǎn)換 標(biāo)準(zhǔn)模板庫 文件操作
  • python讀取.txt文件中某些關(guān)鍵字后面的內(nèi)容 并根據(jù)該數(shù)據(jù)畫圖

    python讀取.txt文件中某些關(guān)鍵字后面的內(nèi)容 并根據(jù)該數(shù)據(jù)畫圖

    感謝一下悅姐幫忙 然后畫圖,其實兩個代碼可以放在一個里面 最后貼個圖:

    2024年02月09日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包