Comment extraire uniquement les chaînes de caractères requises par les expressions régulières à partir de fichiers qui ne peuvent pas être lus avec les délimiteurs "," comme indiqué ci-dessous dans les pandas et les transformer en DataFrame
Si vous lisez les exemples de données ci-dessous tels quels, une erreur se produira car le nombre de colonnes est différent.
test.csv
value1=12333,value2(fuga,hoge),value3=fuga
value1=111,value2(hoge),value3=fugahoge
Lors de la lecture, lisez d'abord une ligne de données.
In[2]: import pandas as pd
In[3]: df = pd.read_csv('test.csv',header=None,sep='\t')
In[4]: df
Out[4]: 
                                            0
0  value1=12333,value2(fuga,hoge),value3=fuga
1     value1=111,value2(hoge),value3=fugahoge
Utilisez Series.str.extract () pour fractionner avec une expression régulière.
In[5]: df[0].str.extract('value1=(?P<val1>\d+),value2\((?P<val2>[\w,]+)\),value3=(?P<val3>.*)')
Out[5]: 
    val1       val2      val3
0  12333  fuga,hoge      fuga
1    111       hoge  fugahoge
Le nom de la colonne peut être spécifié dans la partie de "? P \ 
De plus, étant donné que la valeur extraite est retournée en tant qu'objet, il est nécessaire de la changer en un type int ou similaire selon le cas.
http://sinhrks.hatenablog.com/entry/2014/12/06/233032
Recommended Posts