python:pandas全DataFrame查询定位赋值数值所在行列
pandas行列操作:
https://www.cnblogs.com/mrwuzs/p/11325205.html
pandas读取行列数据:
https://www.cnblogs.com/wynlfd/p/14024947.html
取出DataFrame里面指定的四列数据构成新DF
dfS = data[['A','B','C','D']]print(dfS)
全DataFrame查询数值
demo_df = pd.DataFrame({'Integer Feature': [0, 1, 2, 1], 'Categorical Feature': ['socks', 'fox', 'socks', 'box']})demo_df
用for循环遍历
for indexs in df.index: for i in range(len(df.loc[indexs].values)): if(df.loc[indexs].values[i] =='fox'): print(indexs,i) print(df.loc[indexs].values[i])
添加新的一列,该列数值为空值
用pandas直接是None
dfS["new"] =None
将空值全部改为0
dfS = df.fillna(0)
用numpy是nan
import pandas as pd
import numpy as npdf = pd.DataFrame({'A': ['K0', 'K0', 'K1', 'K2'],'B': ['K0', 'K1', 'K0', 'K1'],'C': ['A0', 'A1', 'A2', 'A3'],'D': ['B0', 'B1', 'B2', 'B3']})df['ZZ'] = np.nan
将指定值改为空值,比如将所有1改为空值
import numpy as np//**********首先在这里遍历全部数据*************//// 把指定值换成9,然后把9换成空值
df.replace("9", np.NaN, inplace=True)
检索全部DataFrame,将符合条件的值的列所在的索引输出到新的一列
# 新添加一列
dfS["ZZ"]=0# 遍历全DF
for indexs in dfS.index: for i in range(len(dfS.loc[indexs].values)): if(dfS.loc[indexs].values[i] =='bbb'): print(indexs,i)# 查询到bbb就在ZZ里面赋值1dfS.iloc[indexs,17] = iprint(dfS.head())
pandas.DataFrame中某数值在某行中第一次出现的索引号
dfS["ZZ"] = None# 将每一行第一次出现的字符串的索引保存在ZZ列里面
ZuiHouyilie = 26for indexs in dfS.index: for i in range(len(dfS.loc[indexs].values)):if(dfS.loc[indexs].values[i] ==1): print(indexs,i)dfS.iloc[indexs,ZuiHouyilie] = ibreak print(dfS.head())
pandas.DataFrame中某数值在某行中最后一次出现的索引号
dfS["ZZ"] = NoneZuiHouyilie = 26for indexs in dfS.index: for i in range(len(dfS.loc[indexs].values)): if(dfS.loc[indexs].values[i] ==1): print(indexs,i)dfS.iloc[indexs,ZuiHouyilie] = iprint(dfS.head())
pandas.DataFrame中每一行某个数值出现的次数
# 将符合条件的数值修改为1,不符合的修改为0
ChaXunStr = 13311for col in dfS.columns:dfS.loc[dfS[col] != ChaXunStr,col] = 0dfS.loc[dfS[col] == ChaXunStr,col] = 1dfS# 求和
# 增加新的一列数据,保存的是查询的那个数值的索引位置
# 第一次出现还是最后一次出现?最后一次!
dfS["ZZ"] = None# 将查出来的索引位置存在ZZ所在的列
# 存的是最后一次出现的索引位置
ZuiHouyilie = 26for indexs in dfS.index: for i in range(len(dfS.loc[indexs].values)): if(dfS.loc[indexs].values[i] ==1): print(indexs,i)dfS.iloc[indexs,ZuiHouyilie] = iprint(dfS.head())# 只取求和结果那一列输出结果!
dfS['Times'] =dfS.apply(lambda x:x.sum(),axis =1) #对每一行求和,添加新的一行dfS = dfS[['Times']]#只提取index和TimesdfSdfS.to_csv("FSP22131chuxiancishu.csv")
pandas.dataframe根据ID列关联两个DataFrame
相当于excel中VLOOKUP 功能
# dfA列的长度比dfB的长度大!大的在前,小的在后
# outer表示并集,inner表示交集
dfS = dfA.merge(dfB,how='outer',on=['ID '])dfS
统计全DATa Frame各个数值出现的次数
pieces = []for col in dfS.columns:tmp_series = df[col].value_counts()tmp_series.name = colpieces.append(tmp_series)df_value_counts = pd.concat(pieces, axis=1)
FSP_3 = df_value_counts.fillna(0)FSP_3["Total"] =FSP_3.apply(lambda x:x.sum(),axis =1)print(FSP_3.head())# 只打印Total列
FSP_3 = FSP_3[['Total']] FSP_3.head()
使用pandas的read_csv时会将长度超过15位的字符串转换位科学计数法显示造成数据丢失。将数据转为str类型即可。
df['A'] = df['A'].astype(str)
去除DF中的英文或者符号
输入
➡ 输出
import pandas as pd
import string
string.punctuationfile_path = "1995_500.csv"
dfS = pd.read_csv(file_path)print(dfS.head())punctuation_string = string.punctuationdfS['LID '].replace('tile_','',regex=True,inplace=True)
print(dfS.head()) # dfS.to_csv("1995_500_new.csv",mode='a')
将DF中所有小数点后位数保留3位
DF =DF.round(3)# 分别对不同列保留小数位
#方法1
df.round({'A1': 1, 'A2': 2})
# 方法2
pd.Series([1, 0, 2], index=['A1', 'A2', 'A3'])
# 通过自定义函数设置小数位数,返回类型为object,以设置为二位小数为例
df.applymap(lambda x: '%.2f'%x)
参考博客
对某列排序
dfS['LID '].sort(reverse=True)
Python的左闭右开原则
python的左闭右开原则
判断一个列表中是否有重复元素
ls = [1, 1, 2, 3]
if len(ls) == len(set(ls)):print("无重复元素!")
else:print("有重复!")
python:pandas全DataFrame查询定位赋值数值所在行列相关推荐
- pandas全表查询定位某个值所在行列
# create a dataframe with an integer feature and a categorical string feature demo_df = pd.DataFrame ...
- python pandas 分割DataFrame中的字符串及元组
python pandas 分割DataFrame中的字符串类型数据的方法 文章目录 1.使用str.split()方法 2.使用join()与split()方法结合 3. 使用apply方法分割元组 ...
- Pandas把dataframe中的整数数值(integer)转化为时间(日期、时间)信息实战
Pandas把dataframe中的整数数值(integer)转化为时间(日期.时间)信息实战 目录 Pandas把dataframe中的整数数值转化为时间(日期.时间)信息实战
- python pandas 遍历 DataFrame
python pandas 遍历 DataFrame df = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'],'B': ['B0', 'B1', 'B2', ...
- Python Pandas的DataFrame对象中轴的意义,axis=0 或者axis=1代表什么意思?
Python Pandas的DataFrame对象中轴的意义,axis=0 或者axis=1代表什么意义? 通常来说:axis = 0代表行, axis=1代表列. 一.从删除操作来看axis: 举个 ...
- 如何创建一个Python Pandas的DataFrame变量,如何给一个DataFrame对象添加新的一行数据?
如何给一个Python Pandas的DataFrame对象添加新一行数据? 1.如何创建一个新的dataframe变量. 1) 创建一个没有列名的dataframe变量:df = pd.DataFr ...
- pandas获取dataframe中索引值最大值所在的数据行(get dataframe row of max index value)
pandas获取dataframe中索引值最大值所在的数据行(get dataframe row of max index value) 目录 pandas获取dataframe中索引值最大值所在的数 ...
- Python—pandas中DataFrame类型数据操作函数
python数据分析工具pandas中DataFrame和Series作为主要的数据结构. 本文主要是介绍如何对DataFrame数据进行操作并结合一个实例测试操作函数. 1)查看DataFram ...
- 【Pandas】DataFrame查询数据
DataFrame查询数据 加载数据 通过索引查询 查询某(几)列 查询一列 的 某(几)行 查询多列 的 某(几)行 使用loc和iloc方法查询 使用bool-series索引 加载数据 impo ...
最新文章
- 独家 | Tableau小技巧之分离Box plot和Unit Histogram(附链接)
- SAP RETAIL MM42维护的采购价格,等同于ME11ME12的效果
- 【ZT】详细设计文档规范
- c++注释快捷键_Java编程之常用快捷键
- lol最克制诺手的英雄_上路克制诺手的英雄,他只需要平A就好了!
- 排版人员 快速排版_选择排版前应了解的事项
- wps表格里面计算机在哪里,WPS的Word居然还有计算神器?在哪里能找到又是怎么进行计算呢?...
- iOS与H5交互(WKWbebView)
- Elasticsearch7.X 字段数据类型
- python3使用schedule
- php redis auth 高并发,PHP+Redis高并发
- Kickstart+HTTP+DHCP+TFTP全自动批量安装部署Linux系统
- nginx.conf添加lua.conf配置
- 82. Session 应用
- 解决Git报“OpenSSL SSL_read: Connection was reset, errno 10054”错的问题
- Android开发 - 掌握ConstraintLayout(一)传统布局的问题 1
- 40个使用HDR的超棒夜景摄影照片展示
- 成都公办计算机学校,成都计算机学校公立-成都公立的计算机学校有哪
- linux支持hd610显卡吗,HD610相当于什么显卡水平 HD610和HD630的区别对比介绍
- Android获取设备的IP地址的两种方法
热门文章
- postgresql standard_conforming_strings参数
- 【BZOJ1778】[Usaco2010 Hol]Dotp 驱逐猪猡
- Python将word表格存入excel —— 格式化pg参数手册
- APPNP:PREDICT THEN PROPAGATE: GRAPH NEURAL NETWORKS MEET PERSONALIZED PAGERANK
- 商务协同办公市场有「后浪」
- 自定义view,仿微信、支付宝密码输入控件的源码实现
- [转载] UEFI+GPT双硬盘安装Win10+Ubuntu16.04双系统
- WLAN旁挂组网二层直连
- 杭州电子科技大学计算机科学与技术专业排名,杭州电子科技大学计算机科学与技术研究生专业排名...
- PAR 相控阵方法,阵元间隔原理