欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python重点语法总结

程序员文章站 2023-11-28 15:07:10
python易错点笔记如何用pandas读取txt文件data=pd.read_table(r'./data/N8AD5Sr3I7dWU274.txt',sep='-',header=None,index_col=0)#header=None:表示文件中无表头#index_col=0:将第一列作为索引pandas中dataframe的列重命名 df.columns=['列1','列2'] df.rename(columns={'name':'人数',age:'年龄'})plt....

python易错点笔记

1. 如何用pandas读取txt文件
data=pd.read_table(r’./data/N8AD5Sr3I7dWU274.txt’,sep=’-’,header=None,index_col=0)
#header=None:表示文件中无表头
#index_col=0:将第一列作为索引
2. pandas中dataframe的列重命名
df.columns=[‘列1’,‘列2’]
df.rename(columns={‘name’:‘人数’,age:‘年龄’})
3. plt.text()函数
plt.text(x,
y,
string,
fontsize=15,
verticalalignment=“top”,
horizontalalignment=“right”
)
x,y:表示坐标值上的值
string:表示说明文字
fontsize:表示字体大小
verticalalignment:垂直对齐方式 ,参数:[ ‘center’ | ‘top’ | ‘bottom’ | ‘baseline’ ]
horizontalalignment:水平对齐方式 ,参数:[ ‘center’ | ‘right’ | ‘left’ ]
4. pandas处理时间序列
pandas时间类型为:
pd.timestamp():时间戳
pd.period():时期
pd.timedelta():时间间隔
常用的日期函数:
pd.to_datetime()
pd.to_period()
pd.date_range()
pd.period_range()
#时间加减 dt=now+pd.Timedelta(days=100)
#时间转化为字符只显示年月日dt.strftime(’%Y-%m-%d’)
#字符转化为时间
方法一: date1[‘d2’]=pd.to_datetime(date1[‘date’],format=’%Y-%m-%d’)
方法二: date1[‘d1’]=date1[‘date’].map(lambda x:pd.datetime.strptime(x,’%Y-%m-%d’))
5. pd.cut的使用
cut_bins=np.range(90,135,5)
bins=pd.cut(df[‘score’],cut_bins)
df[‘新旧装修’]=pd.cut(df['装修时间],[0,2015,2019],labels=[‘新装修’,‘旧装修’])
6. pd.pivot_table透视表的使用
pd.pivot_table(index=‘用户ID’,values=[‘订单金额’,‘购买日期’,‘订单数’],aggfunc={‘订单金额’:‘sum’,‘购买日期’:‘max’,‘订单数’:‘sum’})
7. re.escape方法
可以将字符串中所有可能被解释为正则运算符的字符进行转译。
re.escape(‘www.python.org’)
#‘www\.python\.org’
8. 编码问题
import sys
if sys.getdefaultencoding() != ‘utf-8’:
reload(sys)
sys.setdefaultencoding(‘utf-8’)
9. np.expand_dims:用于扩展数组的形状
import numpy as np
In [12]:
a = np.array([[[1,2,3],[4,5,6]]])
a.shape
Out[12]:
(1, 2, 3)
#np.expand_dims(a, axis=0)表示在0位置添加数据,转换结果如下:
In [13]:
b = np.expand_dims(a, axis=0)
b
Out[13]:
array([[[[1, 2, 3],
[4, 5, 6]]]])
In [14]:
b.shape
Out[14]:
(1, 1, 2, 3)
10. pandas.DataFrame.sample随机选取若干行
DataFrame.sample(n=None, frac=None, replace=False, weights=None, random_state=None, axis=None)[source]
– n:抽取的条数
– frac:抽取比例 ,例如frac=0.8,就是抽取其中80%。
– replace:True or False,是否为放回抽样
– weight:字符索引或者概率数组

11. pandas将dataframe多列拼接成一列str.cat()和一列拆分为多列
df[‘a’].str.cat() 是将多行内容合并为一行
df[‘a’].str.cat(df[‘b’],sep=’-’) 将两列进行合并,并用-进行连接
str.cat()函数使用的前提是两列的内容都是字符串,如果是数值型的话会报错
df[‘price’]=df[‘price’].map(lambda x:str(x))
参考文章
12. pandas中str.extract使用
163cm提取数字并转为int类型:df_all.height.str.extract(’(\d+)’).astype(‘int’)
1993年4月8日(27岁):df_all.age.str.extract(’.?\s\((.*?)岁\)’).astype(‘float’)
13. 从一个list里面统计词频
词云分析
参考文章
#利用collections中的Counter函数
from collections import Counter
list1=[1,2,3,4,3,2,1]
a=Counter(list1)
print(a) # Counter({1:2,2:2,3:2,4:1})
a.elements() #获取a中的所有的键,返回的是一个对象,可以通过list来转化它
a.most_common(2) #返回前两个出现频率最高的以及他们的键,列表里面嵌套元祖的方式
a[‘zz’] #访问不存在的时候,自动返回为0
a.update(“aa5bzz”) #更新被统计的对象,即原有的计数值与新增的相加,而不是替换
a.subtrct(“aaa5z”) #实现与原来的计数值相减,结果运行为0和负值
#利用collections中的defaultdict()
defaultdict()可以接受一个参数,如str,int,float等。但这个参数并不是来约束字典的key的值的类型,也不是用来约束value的值的类型。而是当字典的key不存在时,将value初始化为某个值。str初始化为“”,int初始化为0,float初始化为0.0
from collections import defaultdict
list1=[1,2,3,4,3,2]
count_dict=defaultdict(int)
for item in lists:
count_dict[item]+=1

本文地址:https://blog.csdn.net/chuntingting/article/details/107100863