我正在尝试展开数据帧的一列 (请参见下面示例中的列段。) 我能把它分解成由两个部件分开的部件; 但是,正如您所看到的,列中的某些行确实如此 没有所有的元素。那么,现在发生的是 应该进入Geo列的数据最终会进入 BusSeg柱,因为没有Geo柱;还是数据 应该在ProdServ列中,最后在Geo列中。 理想情况下,我只希望有数据,而不是指标 在每个单元格中正确放置。所以 在Geo栏中,它应该说“NonUs”。不是“Geo=NonUs” 那是正确分离后,我想删除文本 最多包括每个中的“=”符号。我该怎么做? 代码如下:
import pandas as pd
company1 = ('Rev','Rev','Rev','Rev','Rev','Rev','Rev','Rev','Rev')
df1 = pd.DataFrame(columns=None)
df1['company'] = company1
df1['clv']=[500,200,3000,400,10,300,560,500,600]
df1['date'] = [20191231,20191231,20191231,20181231,20181231,20181231,20171231,20171231,20171231 ]
df1['line'] = [1,3,2,1,3,2,1,3,2]
df1['segments'] =['BusSeg=Pharma;Geo=NonUs;Prd=Alpha;Subseg=Tr1',
'BusSeg=Dev;Prd=Alpha;Subseg=Tr1',
'BusSeg=Pharma;Geo=US;Prd=Alpha;Subseg=Tr2',
'Subseg=Tr1',
'BusSeg=Pharma',
'Geo=China;Prd=Alpha;Subseg=Tr4;',
'Prd=Beta;Subseg=Tr1',
'BusSeg=Pharma;Geo=US;Prd=Delta;Subseg=Tr1;',
'BusSeg=Pharma;Geo=NonUs;']
print("\ndf1:")
df1[['BusSeg','Geo','ProdServ','Sub','Misc']] = df1['segments'].str.split(';',expand=True)
print(df1)
print(df1[['BusSeg','Geo','ProdServ','Sub','Misc']])
print(df1.dtypes)
print()
你的数据
df:
在代码中注释这一行
df1[['BusSeg','Geo','ProdServ','Sub','Misc']] = df1['segments'].str.split(';',expand=True)
,然后添加这两行df:
我建议,要逐个填充列,而不是使用split,类似于下面的代码:
这里有一个建议:
结果:
相关问题 更多 >
编程相关推荐