pandas文件導入/導出實例:JSON、CSV、Excel
1. 讀寫JSON
JSON與字典相似,由鍵值對構(gòu)成。
對于JSON的格式化處理:
①菜鳥工具:https://c.runoob.com/front-end/53/
②JsonLint:https://jsonlint.com/
③BEJSON:https://www.bejson.com/
示例JSON文件:歷年諾貝爾獎?https://api.nobelprize.org/v1/prize.json

使用pd.read_json()。一級key為prizes,對應(yīng)的值為列表:

選取列表中的索引2:
得到列表該索引處的字典:

將字典規(guī)范化(normalize)為表格:pd.json_normalize()
但是字典中的laureates對應(yīng)的字典還在:

進一步將其規(guī)范化,并將需要保留的"year", "category"傳遞給meta參數(shù):
laureates成功被拆分:

但是,不能急著將data = chemistry_2019 = nobel.loc[0, "prizes"]改成data?=?nobel["prizes"],因為有的行中并沒有l(wèi)aureates。自諾貝爾文學獎設(shè)立以來,瑞典學院共有7次停頒此獎,時間分別:1914年、1918年、1935年、1940年、1941年、1942年和1943年。例如1940年:

因此字典中缺少laureates相應(yīng)的鍵值對??赏ㄟ^.setdefault("laureates", [])設(shè)置"laureates"對應(yīng)空值:
現(xiàn)在就可以寫data?=?nobel["prizes"]了:

使用.to_json把表格轉(zhuǎn)化成Json。
orient = "records"得到由多個字典組成的列表:
orient = "split"得到由三個字典組成的列表,第一個是列名"columns",第二個是行名(索引)"index",第三個是數(shù)據(jù)"data":
如果需要保存為文件,把文件名傳遞給第一個參數(shù):
2. 讀寫CSV
示例CSV文件:紐約市新生嬰兒信息?http://mng.bz/MgzQ
這個應(yīng)該是個短鏈接網(wǎng)站。該鏈接可以獲得URL,用于CSV文件輸入:https://data.cityofnewyork.us/api/views/25th-nujf/rows.csv

pd.read_csv()讀取CSV:
to_csv()轉(zhuǎn)為CSV:(012345的默認索引也會被被轉(zhuǎn))

使用index = False去除默認索引:

選取指定列,保存CSV:
3. 環(huán)境的安裝和配置
在anaconda prompt查看anaconda中所有可用的環(huán)境及其位置:
base是基礎(chǔ)自帶的,py37是我之前自己建立的:

conda info的幫助界面:

環(huán)境的創(chuàng)建:
也可在Anaconda Navigator管理環(huán)境:

4.?讀寫Excel
不推薦使用anaconda的base環(huán)境。
如果是新環(huán)境,記得安裝xlrd和openpyxl:
直接讀:

選取指定列,設(shè)置指定索引:

多工作表的工作簿,默認導入第一個表:

sheet_name = None則能得到一個字典:

指定表:
兩個工作表寫入一個工作簿示例: