我正在尝试从数据框中提取一些数据,但是以下查询仅提取第一个匹配项并忽略其余匹配项,例如,如果整个数据是:
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) 所以显然(我是初学者)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) 我正在学习 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() 的正确方法是什么
任何帮助,将不胜感激。