Skip to content

pandas

传统 int64 列不能放缺失值(NaN),所以 Pandas 会把整列 升级成 float64 来容纳 NaN 把 dtype='int' 改成 dtype='Int64' (注意大写 I) 这样 outer merge 时缺失会是 ,整列仍是整数类型(可空整数),不会变 float64 。

df['init_sfzx'] = pd.Series(0, index=df.index, dtype='Int64')

案例

常用数据处理操作

备注 案例
类型转换 df['date'].astype(str)
字符串分割 df['name'].str.split(" ").str[0]

周一到周五

import pandas as pd

workdays = pd.bdate_range(
    start='2025-04-01',
    end='2025-08-31'
)

生成中国工作日

import pandas as pd
from chinese_calendar import is_workday

# 时间范围
start = "2010-01-01"
end = "2025-12-31"

# 生成所有日期
dates = pd.date_range(start, end, freq="D")

# 过滤中国工作日
workdays = dates[dates.map(is_workday)]

print(workdays)

随机选择数据

df['date'] = df['作业时间'].dt.strftime('%Y-%m-%d')
# df[df['date'] == df['date'].sample(1).iloc[0]]
r = []
for i in workdays:
    a = df[df['date'] == df['date'].sample(1).iloc[0]].copy()
    a['id'] = i
    r.append(a)
new_df = pd.concat(r, ignore_index=True)
☁️ 部署建议
如果你打算长期运行项目(博客 / API / 自动化脚本),建议直接用云服务器,会比本地稳定很多。
👉 查看云服务器(新用户优惠)