Ste*_*fan 3 python string dataframe pandas
我试图将pandas DataFrame列中括号中出现的文本复制到另一列.我遇到过这个解决方案来解析字符串:正则表达式在括号之间返回文本
我想将结果逐元素分配给新列中的同一行.但是,这并没有直接延续到熊猫系列.我似乎map/apply/lambda似乎是要走的路.我已经到达这段代码,但是语法错误无效.
dataSources.dataUnits = dataSources.dataDescription.map(str.find("(")+1:str.find(")"))
Run Code Online (Sandbox Code Playgroud)
显然,我还不够流利 - 非常感谢.
你可以只用用同样的方法提出的申请有:
In [11]: s = pd.Series(['hi(pandas)there'])
In [12]: s
Out[12]:
0 hi(pandas)there
dtype: object
In [13]: s.apply(lambda st: st[st.find("(")+1:st.find(")")])
Out[13]:
0 pandas
dtype: object
Run Code Online (Sandbox Code Playgroud)
或者您可以使用Series字符串方法之一,例如replace:
In [14]: s.str.replace(r'[^(]*\(|\)[^)]*', '')
Out[14]:
0 pandas
dtype: object
Run Code Online (Sandbox Code Playgroud)
抛弃所有的东西之前(和)包容后的所有东西.
从0.13开始,您可以使用提取方法:
In [15]: s.str.extract('.*\((.*)\).*')
Out[15]:
0 pandas
dtype: object
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4497 次 |
| 最近记录: |