解決df.to_csv()中文件名的問(wèn)題
df.to_csv()中文件名問(wèn)題
下午做了一下午的拆分?jǐn)?shù)據(jù)集,將具有相同母核的分子放在一個(gè)csv文件中,然后新的csv文件命名是母核的名字,然后拆分出的數(shù)據(jù)集和原始未拆分的數(shù)據(jù)集的數(shù)量總是對(duì)不上,我無(wú)語(yǔ)了,排查錯(cuò)誤了很久,我快吐了,最后發(fā)現(xiàn)是出在了下面這一行代碼上:
df_match.to_csv('drawimages/data/diffscaffold/{}.csv'.format(csv_name), index=False)乍一看可能感覺(jué)沒(méi)問(wèn)題,確實(shí)也是可以存入數(shù)據(jù),但是里面有一個(gè)坑,就是 如果現(xiàn)在兩個(gè)母核是下面這兩種的時(shí)候(這兩個(gè)母核只有部分的原子大小寫(xiě)不一致,但是他們是不一樣的),那么它只會(huì)存儲(chǔ)其中一種(大坑)!【原因:Windows會(huì)把這兩個(gè)雖然大小寫(xiě)不一致的文件夾認(rèn)為是一種,且只能存在一種!】
所以會(huì)一直導(dǎo)致不能存儲(chǔ)所有的數(shù)據(jù),總是對(duì)不上數(shù)據(jù)。。。。

O=C(NCc1ccccc1)c1c(Cc2ccccc2)sc2c1CCOC2
O=C(NCC1CCCCC1)c1c(Cc2ccccc2)sc2c1CCOC2

只需要修改代碼為:
for i, core in enumerate(core_list):
matches = []
for j, smiles in enumerate(smiles_list):
mol = Chem.MolFromSmiles(smiles)
core_mol = Chem.MolFromSmiles(core)
if mol.HasSubstructMatch(core_mol):
matches.append(j)
# 選取包含母核的行,并保存到一個(gè)新的csv文件中
df_match = df.iloc[matches]
df_match.to_csv('drawimages/data/diffscaffold/{}.csv'.format(i+1), index=False)
print("{}.csv is done! ".format(i+1))Pandas學(xué)習(xí)之to_csv()
用法:
df.to_csv(輸出路徑,參數(shù)1,參數(shù)2,,參數(shù)3...)
sep=',' ? #以逗號(hào) ,作為數(shù)據(jù)的分隔符,如果分隔符不為逗號(hào),則包含符雙引號(hào)”“就會(huì)消失。分隔符為T(mén)ab時(shí),寫(xiě)法如下:df.to_csv('new.csv', sep='\t')
na_rep='NA' ? #確實(shí)值保存為NA,如果不寫(xiě),默認(rèn)是空 ??
shkiprows= 10 ? # 跳過(guò)前十行
usecols=['column1', 'column2', 'column3'] # 讀取指定列
nrows = 10 ? # 只取前10行
chunksize=1000 # 分塊大小來(lái)讀取文件(每次讀取多少行),不一次性把文件數(shù)據(jù)讀入內(nèi)存中,而是分多次
parse_dates = ['col_name'] ? # 指定某行讀取為日期格式
index_col = ['col_1','col_2'] ? # 讀取指定的幾列
error_bad_lines = False ? # 當(dāng)某行數(shù)據(jù)有問(wèn)題時(shí),不報(bào)錯(cuò),直接跳過(guò),處理臟數(shù)據(jù)時(shí)使用
na_values = 'NULL' ? # 將NULL識(shí)別為空值
header=0 #不保存列名
index=0 ? #不保存行索引
columns=['name'] ? ? #保存索引列和name列
float_format='%.2f' ? ? ? ? #保留兩位小數(shù)總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python中enumerate函數(shù)用法實(shí)例分析
這篇文章主要介紹了python中enumerate函數(shù)用法,以實(shí)例形式較為詳細(xì)的分析了enumerate函數(shù)的功能、定義及使用技巧,需要的朋友可以參考下2015-05-05
Linux下使用python自動(dòng)修改本機(jī)網(wǎng)關(guān)代碼分享
這篇文章主要介紹了Linux下使用python自動(dòng)修改本機(jī)網(wǎng)關(guān)代碼分享,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-05-05
Python腳本實(shí)現(xiàn)datax全量同步mysql到hive
這篇文章主要和大家分享一下mysql全量同步到hive自動(dòng)生成json文件的python腳本,文中的示例代碼講解詳細(xì),有需要的小伙伴可以參加一下2024-10-10
基于python的socket實(shí)現(xiàn)單機(jī)五子棋到雙人對(duì)戰(zhàn)
這篇文章主要為大家詳細(xì)介紹了基于python的socket實(shí)現(xiàn)單機(jī)五子棋到雙人對(duì)戰(zhàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-06-06
python實(shí)現(xiàn)ROA算子邊緣檢測(cè)算法
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)ROA算子邊緣檢測(cè)算法,以光學(xué)圖像為例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-04-04

