Si quiero escribir un informe semanal en Python (Python usa Pandas para leer y escribir Excel)

Comience con dos oraciones BB

Básicamente, el informe semanal escrito todos los viernes es esta rutina.

portapapeles2.png

De repente quiero usar Python para trabajar de forma inteligente y modificar tablas de Excel.

Olvídate de las operaciones de fusionar celdas y modificar estilos de tablas. Solo haz una simple lectura y escritura primero.

Proceso de operación

Instalar Python

Si quieres hacer cosas buenas, primero debes afilar tus herramientas. En primer lugar, hacer el trabajo de preparación, y el entorno de desarrollo es fundamental.

Descargue el paquete de instalación directamente desde el sitio web oficial, estoy usando la versión 3.6.5. Después de descargar e instalar, configure las variables de entorno.

Para las herramientas de desarrollo, utilicé vscode directamente e instalé un complemento de python.

Mantenga presionado ctl + alt + P para configurar el intérprete de selección de Python.

portapapeles.png

Dirección del sitio web oficial de pandas

pandas.pydata.org/

Documentación en chino de pandas

www.pypandas.cn/

Paquete de instalación de pandas

Pandas procesando Excel requiere dependencias xlrd, openpyxl

pip install pandas
pip install xlrd
pip install openpyxl
复制代码

Empezar

Como se muestra en el sitio web oficial, el método de uso es tan simple como 1, 2, 3

# 1、安装包
$ pip install pandas

# 2、进入python的交互式界面
$ python -i

# 3、使用Pandas
>>> import pandas as pd
>>> df = pd.DataFrame() 
>>> print(df)

# 4、输出结果
Empty DataFrame
Columns: []
Index: []
复制代码

Crear Excel, escribir datos

import  pandas  as pd
from pandas import DataFrame

#创建DataFrame可以用下面字典,也可以用数组ndarray
dic = {'标题列1': ['malena','morgan'],
        '标题列2': [36, 34]
       }
df = pd.DataFrame(dic)
df.to_excel('write_test.xlsx', index=False)
复制代码

Ejecute el archivo py y escríbalo con éxito, se siente muy bien.

portapapeles1.png

Introducción a los objetos pandas DataFrame

import pandas as pd
from pandas import DataFrame
复制代码

Escribir en un archivo de Excel, ejemplo oficial:

df.to_excel('foo.xlsx', sheet_name='Sheet1')
复制代码

Lea el archivo de Excel, ejemplo oficial:

 pd.read_excel('foo.xlsx', 'Sheet1', index_col=None, na_values=['NA'])
复制代码

Hay un pequeño agujero aquí:

El motivo es que xlrd se actualizó recientemente a la versión 2.0.1, que solo admite archivos .xls. Entonces pandas.read_excel('xxx.xlsx') informará un error.

Puede instalar una versión anterior de xlrd y ejecutar en cmd:

pip uninstall xlrd
pip install xlrd==1.2.0
复制代码

También es posible abrir archivos .xlsx con openpyxl en lugar de xlrd:

df=pandas.read_excel(‘data.xlsx’,engine=‘openpyxl’)
复制代码

Leer archivo de Excel e imprimirlo

data = pd.read_excel('zmy-weekly.xlsx', sheet_name='3月', engine='openpyxl')
print(data)
复制代码

El resultado de la impresión es el que se muestra a continuación:

portapapeles3.png

Cambie los datos modificando el valor de data.loc. data.loc puede entenderse aproximadamente como una matriz bidimensional, correspondiente a las celdas de cada fila y cada columna.

Por ejemplo, modifique "elemento de trabajo 2" a "elemento de trabajo 5", la celda de un solo número correspondiente, fila 2, columna 2

 data.loc[3][2] = '工作事项5';
复制代码

La modificación se completa y, finalmente, se escribe una nueva hoja de Excel. Puede configurar sheet_name, por ejemplo, configurarlo en "Marzo".

 DataFrame(data).to_excel('new.xlsx', sheet_name='3月', index=False, header=True)
复制代码

El código completo es el siguiente:

import pandas as pd
from pandas import DataFrame

# 3.8.2 pandas读写Excel
def write_weekly():
    data = pd.read_excel('zmy-weekly.xlsx', sheet_name='3月', engine='openpyxl')
    print(data)

    print(data.loc)

    data.loc[2][0] = '3月5周';
    data.loc[2][2] = '工作事项4';
    data.loc[3][2] = '工作事项5';
    data.loc[4][2] = '工作事项6';

    data.loc[2][4] = '已完成';
    data.loc[3][4] = '已完成';
    data.loc[4][4] = '已完成';

    data.loc[5][2] = '又是一个临时工作';


    data.loc[6][0] = '4月1周';

    data.loc[6][2] = '工作事项7';
    data.loc[7][2] = '工作事项8';

    data.loc[6][4] = '进行中';
    data.loc[7][4] = '进行中';

    # # 保存数据
    DataFrame(data).to_excel('new.xlsx', sheet_name='3月', index=False, header=True)


write_weekly();
复制代码

portapapeles5.png

Los estilos son diferentes, pero no es un gran problema. Abra el informe semanal de la semana pasada, seleccione todo, luego formatee, haga clic en el nuevo informe semanal, ajá.

portapapeles6.png

charla con uno mismo

En otras palabras, Excel ya se abrió, ¿por qué no cambiarlo más rápido?

Sin embargo, después de dar vueltas por un rato, debería haber dejado en claro las operaciones básicas de lectura y escritura de Excel con Pandas a través de Python. Volveré a tirar de vez en cuando en el futuro.

Supongo que te gusta

Origin juejin.im/post/7080431880301969444
Recomendado
Clasificación