to_csv&read_csv&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
XYZ
A552
B225
C949
D862
E936
F443

带index保存

df1.to_csv('df_test.csv',index=True)
# 默认读取时会新增index
df2 = pd.read_csv('df_test.csv')
df2.head()
Unnamed: 0XYZ
0A552
1B225
2C949
3D862
4E936
# 指定索引为那一列
df2 = pd.read_csv('df_test.csv',index_col=0)
df2.head()
XYZ
A552
B225
C949
D862
E936

不带index保存

df1.to_csv('df_test1.csv',index=False)
df2 = pd.read_csv('df_test1.csv')
df2.head()
XYZ
0552
1225
2949
3862
4936
df2 = pd.read_csv('df_test1.csv',index_col=0)
df2.head()
YZ
X
552
225
949
862
936

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
XYZ
A967
B528
C392
D766
E669
df3.iloc[0,0] = np.nan
df3.iloc[3,0] = np.nan

df3.iloc[2,1] = np.nan
df3.iloc[4,1] = np.nan
df3
XYZ
ANaN6.07
B5.02.08
C3.0NaN2
DNaN6.06
E6.0NaN9
# 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())   # 会报错
XYZ
C3.0NaN2
E6.0NaN9
XYZ
C3.0NaN2
E6.0NaN9
XYZ
C3.0NaN2
E6.0NaN9
XYZ
C3.0NaN2
E6.0NaN9
---------------------------------------------------------------------------

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'
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值