參考:read_excel;to_excel;read_csv;to_csv
讀取excel/csv數據 - read_excel
import pandas as pd
pd
.read_excel
(io, sheet_name=0, header=0, names=None, index_col=None, usecols=None, squeeze=False, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skiprows=None, nrows=None, na_values=None, keep_default_na=True, verbose=False, parse_dates=False, date_parser=None, thousands=None, comment=None, skip_footer=0, skipfooter=0, convert_float=True, mangle_dupe_cols=True, **kwds)
說明:
- io : 文件路徑及名稱。str, ExcelFile file://localhost/path/to/table.xlsx.
- sheet_name : 指定excel中的哪個sheet。str, int, list, or None, default 0
默認為0,將第一個sheet返回為一個dataFrame,
如果設定為1: 將第二個sheet返回為一個dataFrame,
如果設定為"Sheet1": 將名字為“Sheet1”的sheet返回為一個dataFrame,
如果設定為[0, 1, "Sheet5"]: 返回一個字典,字典的value分別為這三個sheet的DataFrame,
如果設定為None: 返回所有sheet的dataframe組成的字典,- header :指定作為列名的行,默認0,即取第一行,數據為列名行以下的數據;若數據不含列名,則設定 header = None。 int, list of int, default 0;
- names:指定列的名字,傳入一個list數據,若數據不含列名,則應設定 header = None;
- index_col :指定某一列數據作為索引列,用于顯示行名;
- skiprows:省略指定行數的數據.
- dtype : Type name or dict of column.指定讀取時轉換來的變量類型,本人在讀取染色體外顯子exon時指定為str,否則讀出來是小數,當然不存在第'3.0','4.0'外顯子啦,str,int, type, default None
代碼實例:
>>> pd1 = pd.read_excel('test.xlsx',sheet_name = 'Sheet2',index_col=0,skiprows= 2,header = None)
>>> pd1
1 2 3 4 5
0
T3 nameT3 男 47 鄭州中心醫院(胸外) 血液
T4 nameT4 男 48 鄭州中心醫院(胸外) 石蠟切片
T5 nameT5 女 49 蘇博醫學 血液
T6 nameT6 男 50 蘇博醫學 血液
>>> pd2 = pd.read_excel('test.xlsx',skipfooter=3)
>>> pd2
樣本編號 姓名 性別 年齡 送檢醫院 樣本類型
0 F1 nameF1 女 56 NaN 血液
1 F2 nameF2 女 70 NaN 血液
2 F3 nameF3 男 71 NaN 血液
3 F4 nameF4 男 53 NaN 蠟塊
4 F5 nameF5 女 55 邯鄲市第一醫院 石蠟切片
5 F6 nameF6 男 67 蘇博醫學 血液
pd
.read_csv
(filepath_or_buffer: Union[str, pathlib.Path, IO[~AnyStr]], 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, skipfooter=0, 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, cache_dates=True, iterator=False, chunksize=None, compression='infer', thousands=None, decimal=b'.', lineterminator=None, quotechar='"', quoting=0, doublequote=True, escapechar=None, comment=None, encoding=None, dialect=None, error_bad_lines=True, warn_bad_lines=True, delim_whitespace=False, low_memory=True, memory_map=False, float_precision=None)
存儲excel/csv數據 - to_excel
import pandas as pd
pd
.to_excel
(self, excel_writer, sheet_name='Sheet1', na_rep='', float_format=None, columns=None, header=True, index=True, index_label=None, startrow=0, startcol=0, engine=None, merge_cells=True, encoding=None, inf_rep='inf', verbose=True, freeze_panes=None)
說明:
- excel_writer : 輸出路徑或者ExcelWriter對象。str or ExcelWriter object
如果excel_writer為輸出路徑則只會將dataframe寫入第一個sheet,如果要在一個excel中寫入多個sheet,則需要將輸出文件轉化為ExcelWriter對象。
writer = pd.ExcelWriter('out.xlsx')
df1.to_excel(writer, sheet_name='sheet1')
df2.to_excel(writer, sheet_name='sheet2')
writer.save()
- sheet_name : sheet表名命名,str, default ‘Sheet1’,Name of sheet which will contain DataFrame;
- na_rep: 缺失值填充,str, default '',如果na_rep設置為bool值,則讀取excel時改為0和1,True對應1,False對應0;也可以寫入字符串或數字;
- float_format : str, optional, 例如 float_format="%.2f" will format 0.1234 to 0.12;
- columns : 可選部分列輸出,sequence or list of str, optional;
- header :指定作為列名的行,默認True,即取第一行,如果是list則重命名列明。bool or list of str, default True;
- index : 是否顯示行索引(名字),bool, default True,Write row names (index).
pd
.to_csv
(self, path_or_buf=None, sep=', ', na_rep='', float_format=None, columns=None, header=True, index=True, index_label=None, mode='w', encoding=None, compression='infer', quoting=None, quotechar='"', line_terminator=None, chunksize=None, date_format=None, doublequote=True, escapechar=None, decimal='.')
代碼實例:
>>> writer = pd.ExcelWriter('out.xlsx')
>>> pd1.to_excel(writer, sheet_name='pd1',index = False)
>>> pd2.to_excel(writer, sheet_name='pd2', na_rep = '/', columns=['樣本編號','姓名','送檢醫院','樣本類型'])
>>> writer.save()