您的位置:

python中df取某行某列,python删除df的某一行

本文目录一览:

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')