文章目录

  • dataframe保存到csv
  • 读取csv到dataframe
  • 带index保存
  • 不带index保存
  • parquet
  • isnull、isnan、isna的用法
import numpy as np
import pandas as pd

dataframe保存到csv

df.to_csv(path_or_buf,sep,na_rep,columns,header,index)

参数解析

  • path_or_buf:字符串,放文件名、相对路径、文件流等;

  • sep:字符串,分隔符,跟read_csv()的一个意思

  • na_rep:字符串,将NaN转换为特定值

  • columns:列表,指定哪些列写进去

  • header:默认header=0,如果没有表头,设置header=None,表示我没有表头呀!

  • index:关于索引的,默认True,写入索引

读取csv到dataframe

pd.read_csv(filepath_or_buffer, sep=',', delimiter=None, header='infer', names=None, index_col=None, usecols=None, squeeze=False, prefix=None, mangle_dupe_cols=True, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skipinitialspace=False, skiprows=None, nrows=None, na_values=None, keep_default_na=True, na_filter=True, verbose=False, skip_blank_lines=True, parse_dates=False, infer_datetime_format=False, keep_date_col=False, date_parser=None, dayfirst=False, iterator=False, chunksize=None, compression='infer', thousands=None, decimal=b'.', lineterminator=None, quotechar='"',quoting=0, escapechar=None, comment=None, encoding=None, dialect=None, tupleize_cols=False, error_bad_lines=True, warn_bad_lines=True, skipfooter=0, skip_footer=0, doublequote=True, delim_whitespace=False, as_recarray=False,compact_ints=False, use_unsigned=False, low_memory=True, buffer_lines=None, memory_map=False, float_precision=None)

常用参数:

  • filepath_or_buffer:(这是唯一一个必须有的参数,其它都是按需求选用的),文件所在处的路径

  • sep:指定分隔符,默认为逗号’,’

  • delimiter : str, default None,定界符,备选分隔符(如果指定该参数,则sep参数失效)

  • header:int or list of ints, default ‘infer’,指定哪一行作为表头。默认设置为0(即第一行作为表头),如果没有表头的话,要修改参数,设置header=None

  • names:指定列的名称,用列表表示。一般我们没有表头,即header=None时,这个用来添加列名就很有用啦!

  • index_col:指定哪一列数据作为行索引,可以是一列,也可以多列。多列的话,会看到一个分层索引

  • prefix:给列名添加前缀。如prefix=“x”,会出来"x1"、“x2”、"x3"酱纸

  • nrows : int, default None,需要读取的行数(从文件头开始算起)

  • encoding:乱码的时候用这个就是了,官网文档看看用哪个:

  • skiprows : list-like or integer, default None,需要忽略的行数(从文件开始处算起),或需要跳过的行号列表(从0开始)

参考链接:pd.read_csv() 、to_csv() 之 常用参数

df1 = pd.DataFrame(np.random.randint(2,10,(6,3)),columns=list('XYZ'),index=list('ABCDEF'))
df1
X Y Z
A 5 5 2
B 2 2 5
C 9 4 9
D 8 6 2
E 9 3 6
F 4 4 3

带index保存

df1.to_csv('df_test.csv',index=True)
# 默认读取时会新增index
df2 = pd.read_csv('df_test.csv')
df2.head()
Unnamed: 0 X Y Z
0 A 5 5 2
1 B 2 2 5
2 C 9 4 9
3 D 8 6 2
4 E 9 3 6
# 指定索引为那一列
df2 = pd.read_csv('df_test.csv',index_col=0)
df2.head()
X Y Z
A 5 5 2
B 2 2 5
C 9 4 9
D 8 6 2
E 9 3 6

不带index保存

df1.to_csv('df_test1.csv',index=False)
df2 = pd.read_csv('df_test1.csv')
df2.head()
X Y Z
0 5 5 2
1 2 2 5
2 9 4 9
3 8 6 2
4 9 3 6
df2 = pd.read_csv('df_test1.csv',index_col=0)
df2.head()
Y Z
X
5 5 2
2 2 5
9 4 9
8 6 2
9 3 6

parquet

train = pd.read_parquet(path+'train_fold_'+str(fold)+'.parquet')

isnull、isnan、isna的用法

np.isnan()多用于单个值的检验,pd.isnull()用于对一个DataFrame或Series(整体)的检验

df3 = pd.DataFrame(np.random.randint(2,10,(5,3)),columns=list('XYZ'),index=list('ABCDE'))
df3
X Y Z
A 9 6 7
B 5 2 8
C 3 9 2
D 7 6 6
E 6 6 9
df3.iloc[0,0] = np.nan
df3.iloc[3,0] = np.nandf3.iloc[2,1] = np.nan
df3.iloc[4,1] = np.nan
df3
X Y Z
A NaN 6.0 7
B 5.0 2.0 8
C 3.0 NaN 2
D NaN 6.0 6
E 6.0 NaN 9
# np.isnan()多用于单个值的检验,pd.isnull()用于对一个DataFrame或Series(整体)的检验。
display (df3[df3['Y'].notnull()==False].head())
display (df3[df3['Y'].isnull()].head())
display (df3[df3['Y'].isna()].head())
display (df3[np.isnan(df3['Y'])].head())
display (df3[df3['Y'].isnan()].head())   # 会报错
X Y Z
C 3.0 NaN 2
E 6.0 NaN 9
X Y Z
C 3.0 NaN 2
E 6.0 NaN 9
X Y Z
C 3.0 NaN 2
E 6.0 NaN 9
X Y Z
C 3.0 NaN 2
E 6.0 NaN 9
---------------------------------------------------------------------------AttributeError                            Traceback (most recent call last)<ipython-input-15-d3370cf9107e> in <module>()4 display (df3[df3['Y'].isna()].head())5 display (df3[np.isnan(df3['Y'])].head())
----> 6 display (df3[df3['Y'].isnan()].head())   # 会报错~\Anaconda3\lib\site-packages\pandas\core\generic.py in __getattr__(self, name)4370             if self._info_axis._can_hold_identifiers_and_holds_name(name):4371                 return self[name]
-> 4372             return object.__getattribute__(self, name)4373 4374     def __setattr__(self, name, value):AttributeError: 'Series' object has no attribute 'isnan'

to_csvread_csvisnullisnanisna相关推荐

最新文章

  1. 【转】每天一个linux命令(31): /etc/group文件详解
  2. PXE高效批量安装和Kickstart无人值守安装——真正完成批量自动安装
  3. epoll socket 服务端中read和write的返回值讨论
  4. 阿里云 超级码力在线编程大赛初赛 第1场(第245名)
  5. 事理图谱概念辨析及其与风险标签分类结合的应用探讨
  6. java敏感异常是什么_java中的异常是什么?
  7. hibernate 中的一级缓存 二级缓存
  8. 让你不差钱的9款开源网管工具
  9. es 修改拼音分词器源码实现汉字/拼音/简拼混合搜索时同音字不匹配
  10. 系统指定的路径不存在,怎么办
  11. 小程序云开发之--微信公众号文章采集篇
  12. 【百练】护林员盖房子
  13. [蓝桥杯]三升序列(Python实现)
  14. Springboot集成datax方案小记
  15. MybatisPlus代码生成器实现只覆盖指定文件
  16. VMware发布Linux虚拟桌面技术预览版
  17. 告别第三方检测,教你用Windows自带工具检测!
  18. STM32 SPI+DMA 驱动 SRAM LY68L6400SLIT 应用笔记
  19. 系统分析师易错题整理
  20. 四位行波进位加法器_【HDL系列】超前进位加法器原理与设计

热门文章

  1. 升级python(2.7-3.6.2)
  2. “耐撕”团队 2016.03.31 站立会议
  3. 抛物线、导弹线轨迹计算
  4. 给Lisp程序员的Python简介
  5. Redis的安装过程步骤
  6. 接口测试--apipost参数定位
  7. 软件测试--接口测试入门
  8. stm32实验报告心得体会_嵌入式第9次实验报告
  9. python中isinstance是什么意思_isinstance在python中的意思是什么?
  10. java 编码解码_深入解析Java中的编码转换以及编码和解码操作