安装并导入 pandas 库
安装:pip install pandas
从 csv 文件读取并添加自定义表头
1 2 3 4 5 6
| def read_csv_file(csv): try: with open(csv, 'r') as f: return pd.read_csv(f, header=None, names=['a', 'b', 'c', 'd', 'e', 'f']) except FileNotFoundError: print(f"Error: File '{csv}' not found.")
|
将某列数据转换为数字格式,并将无法转换的置0
1 2 3 4 5
| df = read_csv_file(csv)
df['a'] = pd.to_numeric(df['a'], errors='coerce')
df['a'] = df['a'].fillna(0)
|
将两张相同格式的数据合并
如需要将 table 1
| name |
1st |
| a |
61.31 |
| b |
62.27 |
| c |
63.58 |
与 table 2
| name |
2nd |
| a |
61.24 |
| b |
63.39 |
| c |
63.66 |
合并为
| name |
1st |
2nd |
| a |
61.31 |
61.24 |
| b |
62.27 |
63.39 |
| c |
63.58 |
63.66 |
1 2 3
| df1 = read_csv_file(csv1) df2 = read_csv_file(csv2) df = pd.concat([df1, df2], axis=1)
|
判断第二次的值是否比第一次小或不大于10%
此时需要用到 numpy 库的 where 函数,
pip install numpy
numpy.where(condition, x, y)
- condition :表示条件的布尔数组或条件表达式。
- x :满足条件时的返回值,可以是数组或标量。
- y :不满足条件时的返回值,可以是数组或标量。
1 2 3 4 5
| import numpy as np
diff = df['2nd'].astype(float) - df['1st'].astype(float)
df['percent'] = np.where(df['1st'].astype(float) == 0,round(diff * 100,2),round((diff / df['1st'].astype(float)) * 100,2))
|
将数据存为本地 xlsx 时为特定行添加颜色
此时需要用到 openpyxl 库
pip install openpyxl
1 2 3 4 5 6 7 8 9
| def highlight_false(row): color = 'yellow' if row['percent'] >= 10 else 'white' return ['background-color: %s' % color] * len(row)
styled_df = df.style.apply(highlight_false, axis=1)
styled_df.to_excel(f'reslute.xlsx', engine='openpyxl', index=False)
|