Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk mewarna sel tertentu yang diberi indeks baris dan nama lajur dalam panda?

Bagaimana untuk mewarna sel tertentu yang diberi indeks baris dan nama lajur dalam panda?

WBOY
WBOYke hadapan
2024-02-15 16:39:03812semak imbas

如何在 pandas 中给定行索引和列名称的特定单元格上色?

Kandungan soalan

Saya mempunyai df bingkai data dengan bentuk (100,10) dan lajur_ke_warna kamus untuk setiap baris.

columns_to_color = {
  0: ['col1', 'col2', 'col9'],  # Columns 1, 2 and 9 should be colored for row 0
  1: ['col1', 'col5', 'col8'],  # Columns 1, 5 and 8 should be colored for row 1
  2: ['col3', 'col4', 'col7'],  # Columns 3, 4 and 7 should be colored for row 2
  .......

Bagaimana untuk mewarnakan sel khusus untuk setiap baris lajur ini? Dan kemudian simpan untuk cemerlang?


Jawapan Betul


Anda boleh menggunakan 。 style.apply() seperti ini:

df.style.apply(
    lambda row: [
        'font-weight: bold' if col in columns_to_color[row.name] else ''
        for col in row.index],
    axis=1)

(Saya guna bold sahaja untuk kemudahan.)

Kemudian untuk menukar kepada excel, gunakan .to_excel().

Contoh:

df = pd.DataFrame({f'col{n}': range(10*n, 10*n + 3) for n in range(10)})

Selepas apply (dalam idea saya):

Atas ialah kandungan terperinci Bagaimana untuk mewarna sel tertentu yang diberi indeks baris dan nama lajur dalam panda?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam