
正文
python函数后加问号 python加符号
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
python panda怎么处理数据
创建数据
通过Python的zip构造出一元组组成的列表作为DataFrame的输入数据rec。
In [3]: import pandas as pd
In [4]: import random
In [5]: num = random.sample(xrange(10000, 1000000), 5)
In [6]: num
Out[6]: [244937, 132008, 278446, 613409, 799201]
In [8]: names = "hello the cruel world en".split()
In [9]: names
Out[9]: ['hello', 'the', 'cruel', 'world', 'en']
In [10]: rec = zip(names, num)
In [15]: data = pd.DataFrame(rec, columns = [u"姓名",u"业绩" ])
In [16]: data
Out[16]:
姓名 业绩
0 hello 244937
1 the 132008
2 cruel 278446
3 world 613409
4 en 799201
DataFrame方法函数的第一个参数是数据源,第二个参数columns是输出数据表的表头,或者说是表格的字段名。
导出数据csv
Windows平台上的编码问题,我们可以先做个简单处理,是ipython-notebook支持utf8.
import sys
reload(sys)
sys.setdefaultencoding("utf8")
接下来可以数据导出了。
In [31]: data
Out[31]:
姓名 业绩
0 hello 244937
1 the 132008
2 cruel 278446
3 world 613409
4 en 799201
#在ipython-note里后加问号可查帮助,q退出帮助
In [32]: data.to_csv?
In [33]: data.to_csv("c:\\out.csv", index = True, header = [u"雇员", u"销售业绩"])
将data导出到out.csv文件里,index参数是指是否有主索引,header如果不指定则是以data里columns为头,如果指定则是以后边列表里的字符串为表头,但要注意的是header后的字符串列表的个数要和data里的columns字段个数相同。
可到c盘用Notepad++打开out.csv看看。
简单的数据分析
In [43]: data
Out[43]:
姓名 业绩
0 hello 244937
1 the 132008
2 cruel 278446
3 world 613409
4 en 799201
#排序并取前三名
In [46]: Sorted = data.sort([u"业绩"], ascending=False)
Sorted.head(3)
Out[46]:
姓名 业绩
4 en 799201
3 world 613409
2 cruel 278446
图形输出
In [71]: import matplotlib.pyplot as plt
#使ipython-notebook支持matplotlib绘图
%matplotlib inline
In [74]: df = data
#绘图
df[u"业绩"].plot()
MaxValue = df[u"业绩"].max()
MaxName = df[u"姓名"][df[u"业绩"] == df[u"业绩"].max()].values
Text = str(MaxValue) + " - " + MaxName
#给图添加文本标注
plt.annotate(Text, xy=(1, MaxValue), xytext=(8, 0), xycoords=('axes fraction', 'data'), textcoords='offset points')
如果注释掉plt.annotate这行
相关问答
Q1: python中在函数后面有一个小括号和一个中括号是什么意思
函数带小括号表示执行这个函数,函数如果带参数的话也会输入到这个小括号里,如果后面还有一个
方括号
的话,说明这个函数的返回是一个可迭代对象,比如字符串,
元组
,列表,集合等之类的数据。
tf.shape(features["image"])[0],后面的
中括号
表示取返回结果的索引值为0的值
all_logits[sup_bsz
:
sup_bsz
+
aug_bsz]
是切片操作
Q2: Python ,正则表达式问题
r'(.*) are (.*?) .*'
首先,这是一个字符串,前面的一个r表示字符串为非转义的原始字符串,让编译器忽略反斜杠,也就是忽略转义字符。但是这个字符串里没有反斜杠,所以这个r可有可无。
(.*) 第一个匹配分组,.*代表匹配除换行符之外的所有字符
(.*?)第二个匹配分组,.*?后面多个问号,代表非贪婪模式,也就是说只匹配符合条件的最少字符
后面的一个.* 没有括号包围,所以不是分组,匹配效果和第一个一样,但是不计入匹配结果中。
matchObj.group() 等同于 matchObj.group(0),表示匹配到的完整文本字符
matchObj.group(1) 得到第一组匹配结果,也就是(.*)匹配到的
matchObj.group(2) 得到第二组匹配结果,也就是(.*?)匹配到的
因为只有匹配结果中只有两组,所以填3时会报错。
关于python函数后加问号和python加符号的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






