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

WBOY
Lepaskan: 2024-02-15 16:39:03
ke hadapan
771 orang telah melayarinya

如何在 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
  .......
Salin selepas log masuk

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)
Salin selepas log masuk

(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)})
Salin selepas log masuk

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!

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan