本文目录一览:
- 1、Python中的pandas如何读取excel中指定单元格的值?
- 2、python如何读取csv某列XX行数据保存为列表?
- 3、python panda怎么提取列数据
- 4、Python Pandas 依据标签或者位置选取特定行列 loc和iloc两种方式
- 5、怎样用python,读取excel中的一列数据
- 6、python如何获取指定列表名和其中的值?
Python中的pandas如何读取excel中指定单元格的值?
pandas 读取指定单元格 第2行,第3列
import pandas as pd
df = pd.read_excel('测试.xlsx')
cell = df.iat[0, 2]
[0, 2] 表示单元格的行列 pandas 默认跳过表头从第二行开始 第三列是2 (012)
python如何读取csv某列XX行数据保存为列表?
list1 = df[[df.columns[2],df.columns[0]]]
list2 = df[[df.columns[2],df.columns[1]]]
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这行
Python Pandas 依据标签或者位置选取特定行列 loc和iloc两种方式
Pandas中有两种方式可以进行特定行列的选取,一种是在知道每一列的名称(label)的情况下(df.loc),一种是在只知道列的位置(integer-location)的情况下(df.iloc)。
可以看出,上述的冒号(:)意味着选取所有的行,所以只需在此处进行改动即可选取特定行(前开后闭)
同样在选取特定行的时候,依然存在基于label或者是基于integer-location的选择
选取行采用df.iloc方式,具体如下
除此之外,在采用非标签的方式选择的时候,可以通过输入布尔型变量进行筛选,比如 df.iloc[[True, False, True]] ,或者是 df.iloc[lambda x: x.index % 2 == 0]
完结撒花,反正知道了df.loc和df.iloc的差别之后自由组合就好了~
参考资料:
怎样用python,读取excel中的一列数据
---------------------------
@1方法一
import xlrd
data=xlrd.open_workbook('F:/data.xlsx')#excle文件位置
sheet=data.sheets()[0] #读取第一个表
rows=sheet.row_values(0) #读取第一行
print(rows) #打印第一行
clou=sheet.col_values(0) #读取第一列
print(clou) #打印第一列
print(rows,clou) #打印第一行第一列
x=clou[1:] #去除第一行的第一个数
print(x)
--------------------------------------------------------
@2
import xlrd #导入包
import pandas as pd
data=pd.read_excel('F:/data.xlsx', sheet_name='Sheet1')
#print(type(data))
#print(data)
print(data['B'])#读取某一列
print(data.values)#输出值
print(data.describe())#输出每列的统计数据
x=data[0:10]
print(x)#输出前3行
print(x.T)#转置
print(x.sort_index(axis=1,ascending=False))
a=data.describe()
python如何获取指定列表名和其中的值?
从整个数据库中获取列名(假设数据库包含超过100行,超过50列),基于pandas中特定列中包含的特定值.
在Bkmm3(来自印度的成员)的帮助下,我在数字术语上取得了成功但在字母术语上失败了.我试过的方式是这样的:
df = pd.DataFrame({'A':['APPLE','BALL','CAT'],
'B':['ACTION','BATMAN','CATCHUP'],
'C':['ADVERTISE','BEAST','CARTOON']})
response = input("input")
for i in df.columns: if(len(df.query(i + '==' + str(response))) 0):
print(i)`
然后输出出现错误:
Traceback (most recent call last): NameError: name 'APPLE' is not defined
你们的任何帮助都会非常感谢,谢谢. . .
解决方法:
isin / eq适用于DataFrames,您可以100%向量化:
df.columns[df.isin(['APPLE']).any()] # df.isin([response])
要么,
df.columns[df.eq(response).any()]
索引([‘A’],dtype =’对象’)
这是使用DataFrame.eval和np.logical_or的迂回方式(你是在循环列上):
df.columns[
np.logical_or.reduce(
[df.eval(f"{repr(response)} in {i}") for i in df]
)]
Index(['A'], dtype='object')