利用 pandas 库对数据进行简单处理的记录
文章目录
安装并导入 pandas 库
安装:pip install pandas
import pandas as pd
从 csv 文件读取并添加自定义表头
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
df = read_csv_file(csv)
# 将 a 列的字符串转换为数字,无法转换的会重置为 NaN
df['a'] = pd.to_numeric(df['a'], errors='coerce')
# 将 NaN 值填充为 0
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 |
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 :不满足条件时的返回值,可以是数组或标量。
import numpy as np
diff = df['2nd'].astype(float) - df['1st'].astype(float)
# 当 1st 值为 0 不能除时赋值为 1
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
# 当满足条件时高亮此行
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)
# 保存带有样式的 DataFrame 为 Excel文件
styled_df.to_excel(f'reslute.xlsx', engine='openpyxl', index=False)