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