目录

据ndarray创建dateframe:

根据列标题合并dataframe:

删除指定列中为NaN的行

获取列标题并转为列表

DataFram转numpy

深拷贝

新建空表按列表添加行

更改列类型

查找列值最大值的行

读取txt文件

快速导入以空格分隔的txt文件

读取与存储csv/txt/xlsx

遍历行或列

新增/删除列

重命名列

按索引给列赋值

重置索引从0开始

取某列作为索引

行列索引互换

复制N行

创建时间格式的列

将字符串的列转为时间格式

按一定步长移动时间

根据条件将数值二值化

填充NAN

反转单列

替换所有逗号为空


据ndarray创建dateframe:

 df = pd.DataFrame(para, columns=('interval_hour', 'interval_sec', 'pre','tem', 'WIN_S_Avg_10mi', 'WIN_D_Avg_10mi', 'RHU', 'pwv', 'ztd', 'PRE_1h'))

根据列标题合并dataframe:

# reunit data
df_merge = pd.merge(df_none_PRE_1h, df_arc, on="interval_hour", how="left")
# 按不同列标题合并
df_merge = pd.merge(ChinaMetList, igraList,left_on='id',right_on='wmo', how="left")
# throw mismatching epoch out
df_merge = df_merge.dropna(axis=0, how='any')#按多个键合并
df_merge = pd.merge(ztd_panda, ztd_qxj, on=['site', 'date'], how="left")

删除指定列中为NaN的行

merge3 = merge3.dropna(subset=['id_cmonoc']).reset_index(drop=True)
df = df.dropna(subset=('pressure', 'temperature', 'dewpoint'), how='any').reset_index(drop=True)

获取列标题并转为列表

header = df.columns.tolist()

DataFram转numpy

array = np.array(df)

深拷贝

DataFrame.copy(deep=True)

新建空表按列表添加行

igraSites = pd.DataFrame(columns=header)
igraSites.loc[len(igraSites)] = site     //site是一个list//loc表示按索引获取行,因为df索引从0开始,len表示新的一行

更改列类型

igraSites[['lat', 'lon', 'alt']] = igraSites[['lat', 'lon', 'alt']].astype('float')

查找列值最大值的行

minIndex = igraSites['distance'].idxmin()  //查找索引
minRow = igraSites.loc[minIndex]    //获取行

读取txt文件

df = pd.read_table(path, sep='\t', header=None)
//sep 表示分隔符,\t表制表符,一般为换行符,存在于行尾
//header=None 表示第一行不作为表头
//

快速导入以空格分隔的txt文件

import pandas as pd
header = list(range(10))
df = pd.read_table('cmonocSits.txt' ,header=None, names = header,delim_whitespace=True)
#names 表示列标题
#假如列过多不清楚header中列标题的数量时,可以先用下列方式查看,再添加列标题,注意新列名的长度必须与旧列名一致
out = pd.read_table(fpath, header=None, delim_whitespace=True)
print(out .columns)header = ['site', 'mjd', 'total year', 'year_doy_time', 'ztd', 'nepo', 'flag','nobs']out = pd.read_table(fpath, header=None, names=header,dtype={'year_doy_time': str},skiprows=3,delim_whitespace=True)out['year_doy_time'] = pd.to_datetime(out['year_doy_time'], format='%Y.%j%H%M')# dtype 指定导入列的类型
# skiprows 跳过的行数
# pd.to_datetime处理时间字符串

读取与存储csv/txt/xlsx

# csv
df.to_csv( 'igra2-station-list.csv',index=None)
igraSites = pd.read_csv('igra2-station-list.csv')# txt
df_cma_fillter.to_csv('df_cma.txt',sep='\t', index=None,header=0)# xlsx
df = pd.read_excel(fpath, header=None, names=header, index=False, skiprows=headnum)

遍历行或列

#遍历行
for index, row in df.iterrows():print (row["lat_x"], row["lat_y"])#遍历列
for index, item in commonSet.iteritems():print(item )

新增/删除列

#新增单列
df['c1'] = None
#新增多列
df[['c1','c2']] == None  #报错 KeyError: "['c1','c2'] not in index"
使用concat
pd.concat([df, pd.DataFrame(columns=['c1','c2'])]) #该方法不能只能增加列的位置
使用reindex来重排和增加列名
df.reindex(columns=['c1','c2'])   #删除列
del curr_data['date']

重命名列

# 直接修改columns,注意与原列数量一致
date.columns = ['Year', 'Month', 'Day','Hour']# 自由更改
df= df.rename(columns = {"old_name": "new_name"})

按索引给列赋值

    df_merge.loc[index,['sitename', 'lat_z', 'lon_z', 'distance']] = minIndex,minLat,minLon,minDis

重置索引从0开始

df.index = range(len(df))

取某列作为索引

out = out.set_index('列名')

行列索引互换

curr_df = inf.to_frame().stack().unstack(level=0)

复制N行

curr_df = curr_df.append([row]*5) 

创建时间格式的列

curr_df['date'] = pd.to_datetime(curr_df[['year','month','day','hour']])
#curr_df表示时间年月日时的列标题必须为'year','month','day','hour'的小写或混合大小写

将字符串的列转为时间格式

date['date'] = pd.to_datetime(date['date'], format="%Y%m%d_%H%M%S")
更多格式用法:https://docs.python.org/3/library/datetime.html#strftime-and-strptime-behavior

按一定步长移动时间

 curr_df['date'] = curr_df['date_bj'] - pd.Timedelta(8, unit='h')

根据条件将数值二值化

match['obs'] = (match['precipitation'] >= typeThreshold).astype('int')
//
match['obs'][match['obs']>= typeThreshold]=1
match['obs'][match['obs']< typeThreshold]=0
//
match['obs'].mask(match['obs'] >=  typeThreshold, 1, inplace=True)
match['obs'].mask(match['obs'] < typeThreshold, 0, inplace=True)

填充NAN

 df = df.fillna(0)

反转单列

coor.latitude = coor.latitude.values[::-1]
coor.longitude = coor.longitude.values[::-1]

替换所有逗号为空

df = df.replace(r',', '',regex = True)
df['name'] = df['name'] .replace(r',', '',regex = True)

pandas常用语法相关推荐

  1. pandas 按字符串肚脐眼 读取数据_十分钟学习pandas! pandas常用操作总结!

    学习Python, 当然少不了pandas,pandas是python数据科学中的必备工具,熟练使用pandas是从sql boy/girl 跨越到一名优秀的数据分析师傅的必备技能. 这篇pandas ...

  2. pandas常用函数说明及速查表

    pandas常用函数说明及速查表 如果你用python做开发,那么几乎肯定会使用pandas库. Pandas 是 Python 语言的一个扩展程序库,用于数据分析. Pandas 是一个开放源码.B ...

  3. python中pandas格式_Python学习笔记之数据分析中Pandas常用知识

    前言 Pandas基于两种数据类型:series与dataframe. 一个series是一个一维的数据类型,其中每一个元素都有一个标签.series类似于Numpy中元素带标签的数组.其中,标签可以 ...

  4. Markdown通用的常用语法说明

    前言 Markdown 是一种轻量级的 标记语言,语法简洁明了.学习容易,还具有其他很多优点,目前被越来越多的人用来写作使用. Markdown具有一系列衍生版本,用于扩展Markdown的功能(如表 ...

  5. jsp 4种常用语法3个编译指令7个动作指令

    4种常用语法: 注释:<%--注释--%> 声明:<%!声明部分%> 输出:<%=%> 脚本:可以包含任何java可执行代码.例 <% for(int i=0 ...

  6. NumPy和Pandas常用库

    NumPy和Pandas常用库 1.NumPy NumPy是高性能科学计算和数据分析的基础包.部分功能如下: ndarray, 具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组. 用于对整组数 ...

  7. python常用命令汇总-python数据分析之pandas常用命令整理

    原标题:python数据分析之pandas常用命令整理 pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的.Pandas 纳入了大量库和一些标准的数据模型 ,提供了高效地 ...

  8. [转]C++/CLI与C#常用语法对比

    [转]C++/CLI与C#常用语法对比 Kenny Kerr 一篇名为C++: The Most Powerful Language for .NET Framework Programming文章中 ...

  9. 每天学一点儿shell:Shell的常用语法规则

    文章目录 Shell 参数传递 Shell 数组 Shell 基本运算符 算数运算符 关系运算符 布尔运算符 逻辑运算符 字符串运算符(重点) 文件测试运算符 Shell 常用语法 Shell 函数 ...

最新文章

  1. Python 实现整数线性规划:分枝定界法(Branch and Bound)
  2. WritableComparable排序案例(区内排序)
  3. UVa12583 - Memory Overflow
  4. asp.net 表单总结
  5. 浏览器上网 (Safari Chrome)
  6. 服务器win2008修复安装,Win2008 R2迁移实战之迁移工具安装
  7. linux移植wifi sd8688.bin 最新固件,[ZZ]浅析firmware完整生存和使用流程
  8. linux 系统课程-进程控制01
  9. linux 特殊shell变量
  10. 暴走大侠显示进入服务器失败,暴走大侠:常见问题详解,再遇见这样的问题也不再迷糊...
  11. java list过滤重复的数据_List 去除重复数据的 5 种正确姿势!
  12. 【mybatis】时间范围 处理时间格式问题
  13. linux中的输出格式化,Linux column使用(格式化输出)
  14. Removing a detached instance--删除失败
  15. android admob sdk,android – 无法显示AdMob横幅
  16. 编程篇(002)-js实现一个打点计时器
  17. HashMap 扩容 加载因子
  18. Pycharm中用Appium框架编写第一个自动化脚本
  19. DirectX中的粒子系统
  20. 编码规范汇总【持续更新】

热门文章

  1. Word文档转换PDF格式常见转换技巧汇总
  2. 问答系统一些综述性质的文章
  3. postman密码错误找回时没有任何反应||postman密码找回
  4. UICC 之 USIM 详解全系列——UICC中的Apps与Files结构
  5. 【大厂面试题精选】UDP 和 TCP 核心知识总结
  6. 最优生成树c语言_C语言:数据结构-构造哈夫曼树
  7. 计算机真人发音的怎么变成音乐的,如何实现人工语音合成?一个软件就能搞定...
  8. bcb image 动态大小_实战|使用CSS Paint API动态创建与分辨率无关的可变背景
  9. 如何听微信公众号的文章
  10. 动态库、静态库的创建及使用