Python 如何从dataframe列中提取信息
我有下面的dataframe,我想从列A中提取一些信息,然后创建其他列,根据它们的类型添加它们。 下面是一个例子来说明这一点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
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