当向数据库中插入数据时,字段 B 为int类型,其中包含非法字符 -,这里解决方式是替换为空值,在传入数据库的过程会自动由pandas的NaN转化为sql的null。

    1. import pandas as pd
    2. import numpy as np
    3. df = pd.DataFrame({'A': [0, 1, 2, 3, 4],
    4. 'B': ['5', '-', 7, 8, 9],
    5. 'C': ['a', '-', 'c ', 'd', 'e']})
    6. df.replace("-", np.NaN, inplace=True)
    7. print(df)

    替换前输出效果:

    1. A B C
    2. 0 0 5 a
    3. 1 1 - -
    4. 2 2 7 c
    5. 3 3 8 d
    6. 4 4 9 e

    替换后效果:

    1. A B C
    2. 0 0 5 a
    3. 1 1 NaN NaN
    4. 2 2 7 c
    5. 3 3 8 d
    6. 4 4 9 e