Excel用户惊了!Pandas 5分钟处理10万行股票数据(附避坑代码)

[复制链接]
查看6257 | 回复0 | 2025-2-2 19:10:52 | 显示全部楼层 |阅读模式
**第二天:数据清洗魔法**0 q* H# q) I  t5 ]/ e# V
---1 A8 \9 t3 A, C2 Q" ]  G
**痛点直达**/ S4 L; w) U$ ~' V& L7 o" @# d
手动处理股票数据崩溃?VLOOKUP卡死?缺失值像地雷一碰就炸?  b' Z% Y8 k, o2 ^, K
---
8 n# a& G2 r1 H6 b) p**核心代码**% Y+ h' v" d( Y* m) H. a- ?9 v
```python
! n" h' V, U% j% A: R/ Limport pandas as pd+ K" Y) N. z; d/ K! r
# 魔法①:混乱日期一键转换(自动识别20230101/2023-1-1等格式), _# I) |1 C% G' p+ f) }
df["交易日期"] = pd.to_datetime(df["交易日期"], errors="coerce")$ H* h5 x* o2 V# O! Z; c
# 魔法②:合并主力资金+大盘数据(彻底告别VLOOKUP)) E( f4 G# B6 v% f- Q, b* d
merged_df = pd.merge(; ]& L) l4 a  [5 N$ b* q
pd.read_csv("主力资金.csv"),
* |: ~+ k3 H; c9 a% v* L4 K: Opd.read_csv("沪深300.csv"),
  o3 Q" i4 r1 m' d8 {% non="日期",
2 P. g: e- Z% ~1 K* lhow="inner" # 自动对齐日期,缺失数据直接剔除
5 s/ t. }) ~4 I+ P. K2 L)
  G( n2 e' d0 d1 x, y8 N0 w6 B# 魔法③:智能填充缺失值(向前填充→向后填充双保险)
6 S# g4 M( E( g& W8 Uclean_df = merged_df.ffill().bfill()
7 w9 C& e+ N" K3 k. O4 c- n. P```
& i" @- p- M+ i9 A/ C---& R$ Z" h' h1 [, z5 i! c
**避坑指南**
' h. V' G8 B5 N: ~) ]1. **中文列名报错**:
. ?/ L( D5 Y0 x0 _# {) ~) Y```python
7 y0 ~2 ]- f& i. {. E  Y# 将中文列名改为英文(如‘date’替代‘日期’)
  F4 S8 b7 ?/ ~5 y/ Bdf.rename(columns={"日期":"date"}, inplace=True)
& O1 D" ]. u: H6 g' O7 O2 A```& y% h# W) C3 k6 G+ V% h
2. **内存爆炸**:5 M4 @* ?' C1 S; L
```python
0 u! o% E7 H% A5 h6 u6 G; w) U# 压缩数据体积(成交量列从int64转为int32)0 ?) o3 |2 K9 g5 R' e* k' j3 e
df["成交量"] = df["成交量"].astype("int32")
, b1 W  M" ^. b; S0 ^3 F  ~```% T. E! W  |$ \# y/ k
3. **速度优化**:) j/ a% S2 c% u9 x2 ^
```python8 R9 R5 g# E. r, s; T& o1 M- m
# 加速10倍的核心配置+ m) @& U9 s% ?+ I
pd.set_option('mode.chained_assignment', None) # 关闭警告
9 m9 i) Q% L, T, ^: `* z```1 w; w$ g4 w4 M. A9 U$ e% D+ h
---
6 ~. @' _8 S0 n( y, y1 O2 b**明日解锁**
+ n2 m1 j& ^  A) q# ~“通达信OUT!用3行代码生成MACD/KDJ,自动标记买卖信号!”
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

19

金钱

0

收听

0

听众
性别

新手上路

金钱
19 元