如何一次切片熊猫数据框的所有元素?

时间:2019-12-03 05:34:25

标签: python python-3.x pandas dataframe data-analysis

我的熊猫数据框中存储了以下数据:

           Factor          SimTime          RealTime  SimStatus
0    Factor[0.48]   SimTime[83.01]  RealTime[166.95]  Paused[F]
1    Factor[0.48]   SimTime[83.11]  RealTime[167.15]  Paused[F]
2    Factor[0.49]   SimTime[83.21]  RealTime[167.36]  Paused[F]
3    Factor[0.48]   SimTime[83.31]  RealTime[167.57]  Paused[F]

我想创建一个仅包含[]中所有内容的新数据框。

我正在尝试使用以下代码:

df = dataframe.apply(lambda x: x.str.slice(start=x.str.find('[')+1, stop=x.str.find(']')))

但是,我在df中看到的只是NaN。为什么?这是怎么回事?我该怎么做才能达到预期的行为?

1 个答案:

答案 0 :(得分:1)

您可以使用正则表达式替换内容。

df.replace(r'\w+\[([\S]+)\]', r'\1', regex=True)

修改

熊猫DataFrame

替换功能

Replace values given in to_replace with value

目标字符串和需要替换的值可以是正则表达式。为此,您需要将参数regex=True设置为replace

https://regex101.com/r/7KCs6q/1 查看上面的链接,详细了解正则表达式的解释。

基本上,它使用方括号中的非空格内容作为值,并使用带有某些字符的任何字符串,然后将使用非空格字符的方括号作为目标字符串。