我有以下数据框:

   a    b             x  
0  id1  abc 123 tr    2  
1  id2  abd1 124 tr   6 
2  id3  abce 126 af   9 
3  id4  abe 128 nm    12 

从b列中,对于每一项,我需要在第一个空格之前提取子字符串.因此,我需要以下结果:

list_of_strings = [abc, abd1, abce, abe]

请告知

推荐答案

使用具有^\S+(锚定在字符串开头的非空格字符)和str.extract的正则表达式:

df['b'].str.extract(r'^(\S+)', expand=False)

输出:

0     abc
1    abd1
2    abce
3     abe
Name: b, dtype: object

有关列表,请访问:

list_of_strings = df['b'].str.extract(r'^(\S+)', expand=False).tolist()
# ['abc', 'abd1', 'abce', 'abe']

regex demo

Python-3.x相关问答推荐

Pandas 数据帧断言等同于NaN

DuckDB:带有嵌套对象的星形表达式

Paramiko SFTPClient get()和put()函数的通过/失败结果?

为什么 tkinter 在 tkinter 窗口外计算鼠标事件?

如何将值映射到具有上限和下限的新列

在Pandas中,根据另一列中的重复值将数据分组为一列

我应该如何调整我的变量,以便如果有任何单词符合其中的条件,程序会将其附加到新列表中?

使用 Python 截断并重新编号对应于特定 ID/组的列

使用 Python 在特定组的列中设置上限

asyncio.as_completed() 应该接受 `Iterable`,但如果输入是 `Generator` 就会崩溃?

Jupyter Notebook 拒绝打印一些字符串

Python:如何从句子/段落中提取地址(非正则表达式方法)?

段落中句子的索引

基本 Flask 应用程序未运行(TypeError:模块中缺少必填字段type_ignores)

numpy.ndarray 与 pandas.DataFrame

python判断一个方法是否被调用而不模拟它

map 对象不是 JSON 可序列化的

Windows 下 Python 3.x 的 OpenCV

如何创建一个永远在其上运行滚动协程的事件循环?

如何从集合中删除多个元素?