python - 如何一次切片 pandas dataframe 的所有元素?

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

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

           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。为什么?这是怎么回事?我应该怎样做才能达到预期的行为?

最佳答案

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

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

编辑

replace pandas DataFrame 函数

将 to_replace 中给出的值替换为 value

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

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

基本上,它使用方括号内的非空白内容作为值,并使用任何带有一些字符的字符串,后跟带有非空白字符的方括号作为目标字符串。

关于python - 如何一次切片 pandas dataframe 的所有元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59150718/

相关文章:

python - Pandas to_datetime 丢失时区

python - 每 10 秒运行一次 Python 脚本

python - 我应该为 knn 规范化或标准化我的数据集吗?

python-3.x - 获取垂直线 numpy 的线坐标

python-3.x - 将 dropna 设置为 True 的 Pandas groupby 生成错误的输出

在 Pandas 数据框中解析/拆分 URL 的 pythonic 方法

python - 如何使用 `pd.read_sql` 使用 `mysql.connector`

python - argparse 选择的别名

python - 当有多个其他按钮时,是否可以通过单击为按钮着色

python - 在 Python for 循环中存储数组