我正在使用熊猫数据帧。我正在尝试从字符串的其余部分拆分日期和时间之后的列。你知道吗
df
data
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
期望输出:
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
如果我尝试像df["data"].str.extract('^(.*? [0-9]{2}) (.*)$')
这样的方法,它只会在22(天)之后剥离所有内容
您还可以传递日期\时间的确切形式:
输出:
理解
这取决于数据格式始终为15个字符。
另外,由于我们将不得不删除一列
'data'
,所以我认为最好是从头开始创建一个数据帧。你知道吗rsplit
取决于
'machine'
名称从不包含空格。你知道吗这是因为
pandas.Series.str
提供的字符串访问器是一个iterable,可以在类似于x, y = (1, 2)
的赋值语句中使用还请注意,我毫无歉意地接受了使用^{} in this instance from @jezrael 的想法
使用
positive lookbehind
在{semicolon}{two numbers}{space}
上拆分:详情:
(?<=)
是正向lookback(检查字符串前面是否有任何内容):\d{2}
是模式:{semicolon}{two numbers}
\s
是空白结论:我们在
whitespace
上分裂,但前提是前面有上述模式。你知道吗或者作为
piRSquared
&;jezrael
suggest in the comments,在一行中:输出
相关问题 更多 >
编程相关推荐