понимание
Это зависит от того, что формат данных всегда равен 15 символам.
Кроме того, поскольку нам все равно придется отбрасывать столбец 'data'
, я подумал, что было бы лучше простосоздать фрейм данных с нуля.
pd.DataFrame([[s[:15], s[16:]] for s in df.data], columns=['date', 'machine'])
date machine
0 Oct 22 12:56:52 server1
1 Oct 22 12:56:52 server2
2 Oct 22 12:56:53 server2
3 Oct 22 12:56:54 server2
4 Oct 22 12:56:56 comp2
rsplit
Зависит от 'machine'
имя, не имеющее пробелов.
Это работает, потому что обеспечен доступ к строкеpandas.Series.str
является итеративным и может использоваться в операторе присваивания, аналогичном x, y = (1, 2)
Также обратите внимание, что я непростительно воспринял идею использовать pop
в этом случае из @ jezrael
df['date'], df['machine'] = df.pop('data').str.rsplit(n=1).str
df
date machine
0 Oct 22 12:56:52 server1
1 Oct 22 12:56:52 server2
2 Oct 22 12:56:53 server2
3 Oct 22 12:56:54 server2
4 Oct 22 12:56:56 comp2