小编far*_*777的帖子

从熊猫数据框列中查找所有正则表达式匹配项

我正在尝试从数据框中提取一些数据,但是以下查询仅提取第一个匹配项并忽略其余匹配项,例如,如果整个数据是:

df['value']=
           0   123 blah blah blah, 456 blah blah blah, 129kfj blah blah
           1   237 blah blah blah, 438 blah blah blah, 365kfj blah blah 
           ...
Run Code Online (Sandbox Code Playgroud)

正则表达式是:

df['newCol']=df['value'].str.extract("[0-9]{3}")
Run Code Online (Sandbox Code Playgroud)

我希望结果是一个新的列名“newCol”:

newCol
------
123,456,129
237,438,365
...
Run Code Online (Sandbox Code Playgroud)

但我得到的实际结果只是第一个数字:

newCol
------
123
237
Run Code Online (Sandbox Code Playgroud)

这里有什么问题?:(

谢谢你

更新:

感谢 MaxU 我找到了解决方案,只有几个建议。我有 Pandas 0.18.1,所以在我将 Pandas 更新到 0.19 之前,extractall 对我不起作用,所以如果你对 Extractall 有问题,记得检查你的 Pandas 版本......第二,apply(','.join) 没有对我有用,因为我有一些非字符串值(空值)并且它无法处理它,所以我使用了 Lambda,它最终与 MaxU 解决方案的一个小修改一起工作。

x['value'].str.extractall(r'(\d{3})').unstack().apply(lambda x:','.join(x.dropna()), axis=1) 
Run Code Online (Sandbox Code Playgroud)

python regex pandas

6
推荐指数
1
解决办法
6763
查看次数

在接口打字稿中支持静态和非静态方法

所以显然(我是初学者)ts 不支持接口中的静态方法,但是有一个解决方法解释了它Val 的答案。当您的类只有静态方法时,它会起作用。但是如果我的类是静态和非静态方法的组合,这将引发错误:

Class 'MyClass' incorrectly implements interface 'sampleInterface'.
  Property 'staticFunction' is missing in type 'MyClass' but required in type 'sampleInterface'
Run Code Online (Sandbox Code Playgroud)

知道如何支持这个吗?

export function staticDecorator<T>() {
    return (constructor: T) => {};
}

interface sampleInterface {
   staticFynction(/*something*/): promise<void>;
   nonStaticFynction(/*something*/): promise<void>;
}

@staticDecorator()
class MyClass implements sampleInterface  {
    public static staticFynction(/*something*/): promise<void>{
      //something
    }
    public nonStaticFynction(/*something*/): promise<void>{
      //something
    }
}
Run Code Online (Sandbox Code Playgroud)

typescript

4
推荐指数
1
解决办法
1974
查看次数

使用 Panda 库将非数字转换为数值

我正在学习 Pandas,我遇到了一个有趣的问题。所以我有一个像这样的数据框:

COL1    COL2      COL3
a     9/8/2016     2
b     12/4/2016    23
         ...
n     1/1/2015     21
Run Code Online (Sandbox Code Playgroud)

COL1 是字符串,Col2 是时间戳,Col3 是数字。现在我需要对此数据框进行一些分析,我想将所有非数字数据转换为数字。我尝试使用DictVectorizer()将 COL1 和 2 转换为数字,但首先我不确定这是否是执行此类操作的最佳方法,其次我不知道如何处理时间戳。当我使用 DictVectorizer 时,输出将如下所示:

{u'COL3: {0:2, 1:23 , ...,n:21}, 'COL1': {0: u'a', 1:'b', ... , n:'n'}, 'COL2': {0: u'9/8/2016' , 1: u'12/4/2016' , ... , n:u'1/1/2016'}}
Run Code Online (Sandbox Code Playgroud)

但根据我了解到的情况应该是这样的,或者至少我知道我需要这样的东西:

 {COL1:'a', COL2: '9/8/2016' , COL3: 2  and so on}   
Run Code Online (Sandbox Code Playgroud)

所以,问题: 1-将非数字(包括日期)转换为数字值以在 sklearn 库中使用的最佳方法是什么 2-使用 DictVectorize() 的正确方法是什么

任何帮助,将不胜感激。

python pandas

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

pandas ×2

python ×2

regex ×1

typescript ×1