dataframe如何替换某列元素值_dataframe按条件替换某⼀列
中的值⽅法
dataframe 按条件替换某⼀列中的值⽅法
如下所⽰:
import pandas as pd
content = ['T', 'F'] * 10
data = pd.DataFrame(content, columns=['Y'])
print(data)
Y
0 T
1 F
2 T
3 F
4 T
5 F
6 T
7 F
8 T
9 F
10 T
python怎么读取excel某一列11 F
12 T
13 F
14 T
15 F
16 T
17 F
18 T
19 F
data.loc[data['Y'] == 'T'] = 1
data.loc[data['Y'] == 'F'] = 0
print(data)
Y
0 1
1 0
2 1
3 0
4 1
5 0
6 1
7 0
8 1
9 0
10 1
11 0
12 1
13 0
14 1
15 0
16 1
17 0
18 1
19 0
以上这篇dataframe 按条件替换某⼀列中的值⽅法就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持我们。
时间: 2019-01-29
实例如下所⽰: import numpy as np import pandas as pd data = {'city': ['Beijing', 'Shanghai', 'Guangzhou', 'Shenzhen',
'Hangzhou', 'Chongqing'], 'year': [2016,2016,2015,2017,2016, 2016], 'population': [2100, 2300, 1000, 700, 500, 500]} frame = pd.DataFrame(
在读取⽂件时将整数变量读成了字符串, 或者需要转换列属性时,通过⽅法astype Python中 举例:
dataframe.numbers=dataframe.numbers.astype(float) province.id=province.id.astype(str) R中 举例: data
假如有⼀列全是字符串的dataframe,希望提取包含特定字符的所有数据,该如何提取呢? 因为之前尝试使⽤filter,发现⾏不通,最终到这个⾏得通的⽅法. 举例说明: 我希望提取所有包含'Mr.'的⼈名 1.⾸先将他们进⾏字符串化,并得到其对应的布尔值: >>> bool =
ains('Mr\.') #不要忘记正则表达式的写法,'.'在⾥⾯要⽤'\.'表⽰ >>> print('bool : \n', bool) 2.通过dataframe的
在数据处理过程中,经常会出现对某列批量做某些操作,⽐如dataframe df要对列名为"values"做⼤于等于30设置为1,⼩于30设置为0操作,可以这样使⽤dataframe的apply函数来实现, 具体实现代码如下: d
ef fun(x): if x >= 30: return 1 else: return 0 values=
feature['values'].apply(lambda x: fun(x)) 具体的逻辑可以修改fun函数来实现,但是按照某些条件选择列不是
原始数据的DF: 此时,我要选择列名isInfected为"⼿⾜⼝病"的样本⾏: 总结:选择DataFrame⾥⾯某⼀列等于某个值的所有⾏,⽤⼀条命令即可解决即: df.loc[df['columnName']=='the value'] 以上这篇根据DataFrame某⼀列的值来选择具体的某⼀⾏⽅法就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持我们.
如下所⽰: import numpy as np import pandas as pd from pandas import Sereis, DataFrame ser = Series(np.arange(3.)) data = DataFrame(np.arange(16).reshape(4,4),index=list('abcd'),columns=list('wxyz')) data['w'] #选择表格中的'w'列,使⽤类字典属性,返回的是Series类型 data.w #选择表格
pandas.DataFrame选取特定⾏ 使⽤Python进⾏数据分析时,经常要使⽤到的⼀个数据结构就是pandas的DataFrame,如果我们想要像Excel的筛选那样,只要其中的⼀⾏或某⼏⾏,可以使⽤isin()⽅法,将需要的⾏的值以列表⽅式传⼊,还可以传⼊字典,指定列进⾏筛选. >>> df = pd.DataFrame([['GD', 'GX', 'FJ'], ['SD', 'SX', 'BJ'], ['HN', 'HB', 'AH'], ['HEN', 'HEN', 'HL
前⾔ ⼤家在使⽤Python进⾏数据分析时,经常要使⽤到的⼀个数据结构就是pandas的DataFrame,关于python中pandas.DataFrame的基本操作,⼤家可以查看这篇⽂章. pandas.DataFrame排除特定⾏ 如果我们想要像Excel的筛选那样,只要其中的⼀⾏或某⼏⾏,可以使⽤isin()⽅法,将需要的⾏的值以列表⽅式传⼊,还可以传⼊字典,指定列进⾏筛选. 但是如果我们只想要所有内容中不包含特定⾏的内容,却并没有⼀个isnotin()⽅法.我今天的⼯作就遇到了这样的需
相信很多⼈像我⼀样在学习python,pandas过程中对数据的选取和修改有很⼤的困惑(也许是深受Matlab)的影响... 到今天终于完全搞清楚了 先⼿⼯⽣出⼀个数据框吧 import numpy as np import pandas as pd df =
pd.DataFrame(np.arange(0,60,2).reshape(10,3),columns=list('abc')) df 是这样⼦滴 那么这三种选取数据的⽅式该怎么选择呢? ⼀.当每列已有column name时,⽤
sed命令作为⼀个强⼤的shell命令,可以快速删除任意特定的⾏列,配合awk命令可以轻松地操作批量处理⽂件,下⾯就来看看吧! sed命令常⽤到的两个选项: -i : 直接在⽂件上编辑 (edit files in place) -e[默认选项]:只在命令⾏输出,⽽⽂件不改变(add the script to the commands to be executed) 注:使⽤sed命令可以使⽤ -i 或者 -e 选项(以下例⼦仅以-i举例) sed命令删除特定⾏号 删除第N⾏ sed -i '
1. 建⽴⼀个DataFrame C=pd.DataFrame({'a':['dog']*3+['fish']*3+['dog'],'b':[10,10,12,12,14,14,10]})
2. 判断是否有重复项 ⽤duplicated( )函数判断 C.duplicated()
3.  有重复项,则可以⽤drop_duplicates()移除重复项 C.drop_duplicates()
4. Duplicated( )和drop_duplicates( )⽅法是以默认的⽅式判断全部的列(上⾯
⽰例:有如下表需要进⾏⾏转列: 代码如下: # -*- coding:utf-8 -*- import pandas as pd import MySQLdb from warnings import filterwarnings # 由于create table if not exists总会抛出warning,因此使⽤filterwarnings消除 filterwarnings('ignore', category = MySQLdb.Warning) from sqlalchemy im
1.删除/选取某列含有特殊数值的⾏ import pandas as pd import numpy as np a=np.array([[1,2,3],[4,5,6],[7,8,9]])
df1=pd.DataFrame(a,index=['row0','row1','row2'],columns=list('ABC')) print(df1) py() #删除/选取某列含有特定数值的⾏ #df1=df1[df1['A'].isin([1])] #df1[df1['A'].
需要把⼀个从csv⽂件⾥读取来的数据集等距抽样分割,这⾥⽤到了列表表达式和dataframe.iloc 先⽣成索引列表: index_list = ['%d' %i for i in range(df.shape[0]) if i % 3 == 0] 在dataframe中选取 sample_df = df.iloc[index_list] 合起来 sample_df = df.iloc[['%d' %i for i in range(df.shape[0]) if i % 3 == 0]] 各
如下所⽰: >>> import numpy as np >>> import pandas as pd >>> index=np.array([2,4,6,8,10]) >>> data=np.array([3,5,7,9,11]) >>> data=pd.DataFrame({'num':data},index=index) >>> print(data) num 2 3 4 5 6 7 8 9

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。