Dataframe "df"具有以下数据-
| A列|B栏|
| - -| - -|
| 项目标识1|信息-ID为1的项目的信息\n价格-$7.99\n地点-纽约州奥尔巴尼|
| 项目标识2|信息-ID为2的项目信息\n价格-$5.99\n地点-安大略省渥太华|
如何使用"信息"、"价格"和"地点"将B列中的值分隔到不同的列中,如-
| A列|信息|标价|地点|
| - -| - -| - -| - -|
| 项目标识1| ID为1项目信息|七块九毛九|纽约州奥尔巴尼|
| 项目标识2| ID为2项目信息|五块九毛九|安大略省渥太华|
我尝试根据字符串值(如"Information-"、"Price-"、"Place-")拆分列B,但这变得越来越复杂,而且第一个切片中包含不需要的Price和Place信息。
3条答案
按热度按时间yqlxgs2m1#
您可以使用
pandas.Series.split
来解决这个问题:#输出:
bvn4nwqk2#
对于不需要事先知道未来列的泛型方法,可以使用
str.extractall
和pivot
:\
和n
,您可以转换为df['Column B'] = df['Column B'].str.replace(r'\\n', '\n')
*输出量:
zz2j4svz3#
另一种可能的解决方案基于以下想法:
1.使用
pandas.Series.str.split
将Column B
除以\s-\s|\\n
。1.使用
numpy.reshape
改变结果的形状。1.套用
pandas.pivot_table
。输出量: