Pandas

本文详细介绍了Pandas库的操作,包括创建Series和DataFrame,修改列名,合并数据,Series格式化,使用reindex()函数进行重新索引,利用ffill方法进行向前填充,以及如何通过columns关键字重新索引列。此外,还讲解了如何计算DataFrame的行数,向列表和元组中添加新元素的操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# -*- coding: UTF-8 -*-
import pandas as pd
import numpy as np
创建Series
obj = pd.Series([4.5, 7.2, -5.3, 3.6], index=['d', 'b', 'a', 'c'])
创建DataFrame
frame1 = pd.DataFrame(np.arange(9).reshape((3, 3)), index=['a', 'c', 'd'],
                     columns=['Ohio', 'Texas', 'California'])

frame2 = pd.DataFrame(np.random.randn(4, 3), columns=list('bde'),
                     index=['Utah', 'Ohio', 'Texas', 'Oregon'])

# 较完整的 DataFrame 构造器参数为:DataFrame(data=None,index=None,coloumns=None),columns 即 “name”
修改DataFrame列名
total.columns = [u'全量']
合并df
df.concat(total, active, withhold, axis=1) # 横向合并。增加的是列。
df.concat(total, active) # 纵向合并。增加的是行
Series格式化
all[u'占比-主动'] =  (all[u'主动'] / all[u'全量']).map('{:,.3f}'.format)
df['cost'] = df['cost'].map('${:,.2f}'.format) # 参考
reindex() 重新索引
obj = pd.Series([4.5, 7.2, -5.3, 3.6], index=['d','b', 'a', 'c'])
reindex()
obj2 = obj.reindex(['a', 'b', 'c', 'd', 'e'])
参数fill_value
obj3 = obj.reindex(['a', 'b', 'c', 'd', 'e'], fill_value=0)
method用法。ffill向前填充
obj3 = pd.Series(['blue', 'purple', 'yellow'], index=[0, 1, 4])
obj3.reindex(range(6), method='ffill')
obj3.reindex(range(6), method='bfill')
frame = pd.DataFrame(np.arange(9).reshape((3, 3)), index=['a', 'c', 'd'],
                     columns=['Ohio', 'Texas', 'California'])
frame2 = frame.reindex(['a', 'b', 'c', 'd'])
columns关键字 重新索引列
states = ['Texas', 'Utah', 'California']
frame.reindex(columns=states)
frame.reindex(index=['a', 'b', 'c', 'd'], method='ffill', columns=states)

当希望将函数应用到 DataFrame 对象的某一行或列时,可以使用 .apply(func, axis=0, args=(), **kwds) 方法。比如 thresh=3,会在一行中至少有 3 个非 NA 值时将其保留。

inplace 参数
前面有个点一直没讲,结果整篇示例写下来发现还挺重要的。就是 Series 和 DataFrame 对象的方法中,凡是会对数组作出修改并返回一个新数组的,往往都有一个 replace=False 的可选参数。如果手动设定为 True,那么原数组就可以被替换。

求DataFrame的行数
len(df)
列表中添加新元素.用append()
a = []
for i in range(1, 7):
    a = a.append(i)
元组中添加新元素.用+(.. ,)
a = ()
for i in range(1, 7):
    a = a + (i, )
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值