大切なものは、見えるところに。

乳がんかな?と疑い始めてからの日々を、振り返りながら、ゆるやかに綴ります。

Pandas|appendで警告が出るのでconcatとinsertで対応|Python


appendで以下の警告が出ます。

FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version.
Use pandas.concat instead.


困りました。
pandasをよくわからないまま使用しているので対応の仕方が分かりません。
取り敢えず動けばいいかなと思い試してみました。

ターミナルを使ってpythonのバージョン確認

python3 --version
Python 3.9.2



ターミナルを使ってpandasのバージョンを確認

python3 -c "import pandas as pd; print(pd.__version__)"
1.4.3



appendからconcatへ

#の部分がappend使用で、その真下がconcat使用です。

from janome.tokenizer import Tokenizer
from janome.analyzer import Analyzer
from janome.tokenfilter import *
import pandas as pd

text_file=open("ファイル名.txt").read()

a = Analyzer(token_filters=[CompoundNounFilter()])

partofspeech_pd=pd.DataFrame()
for token in a.analyze(text_file):
    str_token=str(token).replace("\t",",")
    token_list=str_token.split(",")
    #partofspeech_pd= partofspeech_pd.append(pd.Series(token_list),ignore_index=True)
    partofspeech_pd= pd.concat([partofspeech_pd,pd.DataFrame([token_list])],ignore_index=True)
partofspeech_pd.columns = ["単語","品詞","品詞細分類1","品詞細分類2","品詞細分類3","活用型","活用形","原形","読み","発音"]
print(partofspeech_pd)

partofspeech_pd.to_csv('ファイル名.csv', sep='\t')




appendからinsertへ

#の部分がappend使用、その真下がinsert使用です。

from janome.tokenizer import Tokenizer
from janome.analyzer import Analyzer
from janome.tokenfilter import *
import pandas as pd

my=open("ファイル名.txt").read()

a = Analyzer(token_filters=[CompoundNounFilter()])

book=[]

corpus=[]
for token in a.analyze(my):
    tab_list=token.base_form
    #book.append(tab_list)  
    book.insert(-1,tab_list) 
    if token.part_of_speech.split(',')[1]=="複合":
        #corpus.append(token.base_form)
        corpus.insert(-1,token.base_form)
        
hon=[]
meisi=[]
yomi=[]
for tuika in corpus:
   
    #hon.append("tuika")
    hon.insert(-1,tuika)
    
    #meisi.append("名詞")
    meisi.insert(-1,"名詞")

    #yomi.append("読み")
     yomi.insert(-1,"読み")
    
    
df1 = pd.DataFrame(hon)
df2 = pd.DataFrame(meisi)
df3 = pd.DataFrame(yomi)

df1['B'] = df2
df1['C'] = df3


df1.to_csv("ファイル名.csv",header=False, index=False)

もう無理やり感がすごいです・・・
insert使わなくても上手くできそうですが頭が回りません。

一応エラーが出なくなったので忘備録として残します。