情况
将嵌套的json
导入到panda中,我得到了下面的示例df
,它带有前缀列名,其工作原理与设计一样,以避免重复的列标题。
import pandas as pd
import re
df = pd.DataFrame({'id': [1,2,3,4],
'product': ['a','b','c','d'],
'basic.productType':[1,2,3,4],
'basic.price':[100,200,300,400],
'location.city':['Bremen', 'Hamburg','Berlin','Karlsruhe'],
'location.city.zip':[1,2,3,4]
})
我还使用regex
解决方案来去除 first level 前缀(包括分隔符在内的所有字符,在本例中为.
,并且仅用于第一次出现):
df.columns = [re.sub('^[^.]+[.]','', name) for name in df.columns]
因此,删除前缀后的列如下所示:
['id', 'product', 'productType', 'price', 'city', 'city.zip']
问题
有没有什么解决方案,你可以建议,以改善我的,这是通用的(没有使用的前缀列表)?因为我不是那么熟悉regex
,也许有更简单的解决方案,也非regex
太。
2条答案
按热度按时间ecr0jaav1#
可以使用拆分,但一般情况下,数据可能是重复的列名,因此,如果选择一列(如
df['col']
),则获取所有列col
:编辑:您可以使用
.
在Index.where
中拆分值或者:
str.replace
解决方案的替代方案:iecba09b2#