pandas 小技巧

1、筛选数据

complaints[['Complaint Type', 'Borough']][:10]

 

is_noise = complaints['Complaint Type'] == "Noise - Street/Sidewalk"

in_brooklyn = complaints['Borough'] == "BROOKLYN"

complaints[is_noise & in_brooklyn][:5]

2、计数

complaint_counts = complaints['Complaint Type'].value_counts()

complaint_counts[:10]

3、分类计数

weekday_counts = berri_bikes.groupby('weekday').aggregate(sum)

4、合并

weather_2012 = pd.concat([f(x) for x in l])

5、字符串操作

 weather_2012['Weather'].str.contains('Snow')

6、修改采样频率(可以获得更宏观的图形)

weather_2012['Temp (C)'].resample('M').apply(np.median)

median:中位数 mean:均值

 

7、清理数据

http://nbviewer.jupyter.org/github/jvns/pandas-cookbook/blob/master/cookbook/Chapter%207%20-%20Cleaning%20up%20messy%20data.ipynb

 

rows_with_dashes = requests['Incident Zip'].str.contains('-').fillna(False)

long_zip_codes = requests['Incident Zip'].str.len() > 5

requests['Incident Zip'][long_zip_codes].unique()

 

zips = zips.str.slice(0, 5)

zero_zips = zips == '00000'

zips[zero_zips] = np.nan

 

zips = requests['Incident Zip']

is_close = zips.str.startswith('0') | zips.str.startswith('1')

is_far = ~(is_close) & zips.notnull()

8、时间转换

popcon['atime'] = pd.to_datetime(popcon['atime'], unit='s')

popcon = popcon[popcon['atime'] > '1970-01-01']

nonlibraries = popcon[~popcon['package-name'].str.contains('lib')]

9、与数据库交互

con = sqlite3.connect("../data/weather_2012.sqlite")

df = pd.read_sql("SELECT * from weather_2012 LIMIT 3", con, 

                 index_col=['id', 'date_time'])

con.execute("DROP TABLE IF EXISTS weather_2012")

weather_df.to_sql("weather_2012", con)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值