dataframe设置两个条件取值的实例

dataframe设置两个条件取值的实例,第1张

概述如下所示:>>>importpandasaspd>>>importnumpyasnp>>>frompandasimportSeries,DataFrame

如下所示:

>>> import pandas as pd>>> import numpy as np>>> from pandas import SerIEs,DataFrame>>> df = DataFrame({'name':['a','a','b','b'],'classes':[1,2,3,4],'price':[11,22,33,44]})>>> df classes name price0  1 a  111  2 a  222  3 b  333  4 b  44>>> 

根据index和columns取值

>>> s = df.loc[0,'price']>>> s11

根据同行的columns的值取同行的另一个columns的值

>>> sex = df.loc[(df.classes==1)&(df.name=='a'),'price']>>> sex0 11name: price,dtype: int64>>> sex = df.loc[(df.classes==1)&(df.name=='a'),'price'].values[0]>>> sex11

根据条件同时取得多个值

>>> name,price = df.loc[df.classes==1,('name','price')].values[0]>>> name'a'>>> price11>>>

对一列赋值

>>> df.loc[:,'price']=0>>> df classes name price0  1 a  01  2 a  02  3 b  03  4 b  0>>>

对df的一个列进行函数运算

【1】>>> df['name'] = df['name'].apply(lambda x: x.upper())>>> df classes name price0  1 A  111  2 A  222  3 B  333  4 B  44【2】>>> df.loc[:,'name'] = df['name'].apply(lambda x: x.upper())>>> df classes name price0  1 A  111  2 A  222  3 B  333  4 B  44>>>

对df的几个列进行函数运算

【1】>>> df[['classes','price']] = df[['classes','price']].applymap(lambda x: str(x))>>> print(type(df.loc[0,"classes"]))<class 'str'>>>> print(df.loc[0,"classes"])1【2】>>> df.loc[:,['classes','price']].applymap(lambda x: int(x))>>> print(type(df.loc[0,"classes"]))<class 'int'>>>> print(df.loc[0,"classes"])1>>> 

对两个列进行去重

>>> df classes name price0  1 a  111  1 a  222  3 b  333  4 b  44>>> df.drop_duplicates(subset=['classes','name'],inplace=True)>>> df classes name price0  1 a  112  3 b  333  4 b  44

多个条件分割字符串

>>> fund_memeber = '赵四、 王五'>>> fund_manager_List = re.split('[;, 、]',fund_memeber)>>> fund_manager_List['赵四','','王五']#DataFrame构造器>>> df = DataFrame({'x':[1],'y':[2]})>>> df x y0 1 2>>>

删除某列值为特定值得那一行

>>> df = DataFrame({'name':['a','c','d'],44]})>>> df classes name price0  1 a  111  2 b  222  3 c  333  4 d  44【方法一】>>> df = df.loc[df['name']!='a']>>> df classes name price1  2 b  222  3 c  333  4 d  44>>> 【方法二】 df.drop(df[df.name=='a'].index,axis=0) #筛选df的每列值包含某个字段‘/a' >>> import pandas as pd>>> df = pd.DataFrame({'a':['A','B'],'b': ['AA','BB']})>>> df a b0 A AA1 B BB>>> df[df['a'].str.contains(r'A')] a b0 A AA>>> df = pd.DataFrame({'a':['/API/','BB']})>>> df  a b0 /API/ AA1  B BB>>> df[df['a'].str.contains(r'/API/')]  a b0 /API/ AA>>>

把列变成index和把index变成列

df  request_url visit_times9 fofeasy_产品基本信息   78   投顾挖掘   65   投顾挖掘   56   投顾挖掘   57 fofeasy_产品基本信息   53 fofeasy_产品基本信息   44 fofeasy_产品基本信息   42   投顾挖掘   20  行业数据――其他   11  行业数据――其他   1x = df.set_index('request_url')x    visit_timesrequest_url    fofeasy_产品基本信息   7投顾挖掘      6投顾挖掘      5投顾挖掘      5fofeasy_产品基本信息   5fofeasy_产品基本信息   4fofeasy_产品基本信息   4投顾挖掘      2行业数据――其他     1行业数据――其他     1x.reset_index('request_url')  request_url visit_times0 fofeasy_产品基本信息   71   投顾挖掘   62   投顾挖掘   53   投顾挖掘   54 fofeasy_产品基本信息   55 fofeasy_产品基本信息   46 fofeasy_产品基本信息   47   投顾挖掘   28  行业数据――其他   19  行业数据――其他   1

pandas 按照列A分组,将同一组的列B求和,生成新的Dataframe

>>>df.groupby(by=['request_url'])['visit_times'].sum()>>>request_urlfofeasy_产品基本信息 20投顾挖掘    18行业数据――其他   2name: visit_times,dtype: int64

dict变成dataframe

In [15]: dict = pd.DataFrame({'x':1,'y':2},index=[0])In [16]: dictOut[16]: x y0 1 2

iloc

In [69]: df1.iloc[1:5,2:4]Out[69]:    4   62 0.301624 -2.1798614 1.462696 -1.7431616 1.314232 0.6905798 0.014871 3.357427

以上这篇dataframe设置两个条件取值的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程小技巧。

您可能感兴趣的文章:pandas.DataFrame 根据条件新建列并赋值的方法python DataFrame 修改列的顺序实例pandas系列之DataFrame 行列数据筛选实例使用DataFrame删除行和列的实例讲解 总结

以上是内存溢出为你收集整理的dataframe设置两个条件取值的实例全部内容,希望文章能够帮你解决dataframe设置两个条件取值的实例所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1204403.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存