Python 如何从dataframe列中提取信息

Python 如何从dataframe列中提取信息,python,regex,pandas,Python,Regex,Pandas,我有下面的dataframe,我想从列A中提取一些信息,然后创建其他列,根据它们的类型添加它们。 下面是一个例子来说明这一点 In [0]: df Out[0]: A 0 1258GA 25/01/20 TABLE 090626 038272 1 GOODIES 762088 A714816 2 TABLE AA88547 734963 GOODIES 3 WATER 02/450 FROM TOMORROW 48246 4 02H12

我有下面的dataframe,我想从列A中提取一些信息,然后创建其他列,根据它们的类型添加它们。 下面是一个例子来说明这一点

In [0]: df
Out[0]: 
          A                  
0 1258GA 25/01/20 TABLE 090626  038272
1 GOODIES 762088 A714816
2 TABLE AA88547 734963 GOODIES
3 WATER 02/450 FROM TOMORROW 48246
4 02H12 ALSCA 00548246B GOODIES
我想得到下面的结果

In [1]: df
Out[1]: 
          A                               Category             Date      Hour
0 1258GA 25/01/20 TABLE 090626  038272    TABLE           25/01/20
1 GOODIES 762088 A714816                  GOODIES 
2 TABLE AA88547 734963 GOODIES            TABLE GOODIES
3 WATER 02/450 FROM TOMORROW 48246        WATER 
4 02H12 ALSCA 00548246B GOODIES           GOODIES                        02H12
我尝试了很多方法,但都没有得到结果

也许这有帮助:

df['A'].str.findall(r'\b[A-Z]+\b').str.join(' ')

0                  TABLE
1                GOODIES
2          TABLE GOODIES
3    WATER FROM TOMORROW
4          ALSCA GOODIES

您当然可以使用Series.str方法来实现

Series.str.extract返回: 将正则表达式pat中的捕获组提取为数据帧中的列

对于系列中的每个主题字符串,从第一个主题字符串中提取组 正则表达式pat的匹配

Series.str.findall返回: 查找序列/索引中所有出现的模式或正则表达式

下面是代码片段

编辑:

产量将是,

                                      A             Category      Date   Hour
0  1258GA 25/01/20 TABLE 090626  038272                TABLE  25/01/20    NaN
1                GOODIES 762088 A714816              GOODIES       NaN    NaN
2          TABLE AA88547 734963 GOODIES        TABLE GOODIES       NaN    NaN
3      WATER 02/450 FROM TOMORROW 48246  WATER FROM TOMORROW       NaN    NaN
4         02H12 ALSCA 00548246B GOODIES        ALSCA GOODIES       NaN  02H12

对于第3排,y不是明天的水吗?只是水吗?第4行也一样?这只是一个例子来解释我最终想要什么。如果我知道如何用这个例子做到这一点,我将把它应用到我的真实数据上,但是这个例子没有可以理解的逻辑,不能解释为什么从明天开始,你的预期输出会丢失。这怎么可能被提升呢?你不应该让读者从一个简单的例子中猜出你想要什么。相反,您应该首先指定需求,然后用示例进行说明。这里您错过了第一点:-可能将结果列表连接到字符串中?df['A'].str.findallr'\b[A-Z]+\b'.str.join''在类别第2行中,您的代码是否可以包含表格和商品?第2行中的类别是什么意思,请您详细解释一下。我的意思是,在专栏类别的第二行中,这就是我通过编辑您的代码所做的。谢谢
                                      A             Category      Date   Hour
0  1258GA 25/01/20 TABLE 090626  038272                TABLE  25/01/20    NaN
1                GOODIES 762088 A714816              GOODIES       NaN    NaN
2          TABLE AA88547 734963 GOODIES        TABLE GOODIES       NaN    NaN
3      WATER 02/450 FROM TOMORROW 48246  WATER FROM TOMORROW       NaN    NaN
4         02H12 ALSCA 00548246B GOODIES        ALSCA GOODIES       NaN  02H12