import pandas as pd
df=pd.DataFrame({'foo':['abc','2. abc','3. abc']})
df
foo
abc
2. abc
3. abc
は私が上に分割したいと思います」。これを作成する:
foo bar
abc
1 abc
2 abc
ありがとうございます!
import pandas as pd
df=pd.DataFrame({'foo':['abc','2. abc','3. abc']})
df
foo
abc
2. abc
3. abc
は私が上に分割したいと思います」。これを作成する:
foo bar
abc
1 abc
2 abc
ありがとうございます!
することができます.str.extract()機能を使用してください。
In [163]: df.foo.str.extract(r'(?P<foo>\d*)[\.\s]*(?P<bar>.*)', expand=True)
Out[163]:
foo bar
0 abc
1 2 abc
2 3 abc
str.split
を使用できますが、mask
がTrue
の場合はnumpy.where
の場合はスワップ値が必要です。あなたはフォルダを持っている場合は、に一時ファイルを置くことができ、CSVファイルを作成して、新しい区切りでそれを再読み込みすることができます
df1 = (df.foo.str.split('. ', expand=True))
df1.columns = ['foo','bar']
print (df1)
foo bar
0 abc None
1 2 abc
2 3 abc
mask = df1.bar.isnull()
print (mask)
0 True
1 False
2 False
Name: bar, dtype: bool
df1['foo'], df1['bar'] = np.where(mask, df1['bar'], df1['foo']),
np.where(mask, df1['foo'], df1['bar'])
df1.foo.fillna('', inplace=True)
print (df1)
foo bar
0 abc
1 2 abc
2 3 abc
:''
列foo
によって最終fillna
df.to_csv('yourfolder/yourfile.csv',index = False)
df = pd.read_csv('yourfolder/yourfile.csv',sep = '. ')