python - Panda 的数据框将一列拆分为多列

标签 python pandas dataframe

我有一个 pandas 数据框,如下所示:

date     |    location          | occurance <br>
------------------------------------------------------
somedate |united_kingdom_london | 5  
somedate |united_state_newyork  | 5   

我希望它变成

date     | country        | city    | occurance <br>
---------------------------------------------------
somedate | united kingdom | london  | 5  
---------------------------------------------------
somedate | united state   | newyork | 5     

我是 Python 新手,经过一番研究,我编写了以下代码,但似乎无法提取国家和城市:

df.location= df.location.replace({'-': ' '}, regex=True)
df.location= df.location.replace({'_': ' '}, regex=True)

temp_location = df['location'].str.split(' ').tolist() 

location_data = pd.DataFrame(temp_location, columns=['country', 'city'])

感谢您的回复。

最佳答案

从这里开始:

df = pd.DataFrame({'Date': ['somedate', 'somedate'],
                   'location': ['united_kingdom_london', 'united_state_newyork'],
                   'occurence': [5, 5]})

试试这个:

df['Country'] = df['location'].str.rpartition('_')[0].str.replace("_", " ")
df['City']    = df['location'].str.rpartition('_')[2]
df[['Date','Country', 'City', 'occurence']]

      Date        Country      City  occurence
0  somedate  united kingdom   london          5
1  somedate    united state  newyork          5

借鉴@MaxU的想法

df[['Country'," " , 'City']] = (df.location.str.replace('_',' ').str.rpartition(' ', expand= True ))
df[['Date','Country', 'City','occurence' ]]

      Date        Country      City  occurence
0  somedate  united kingdom   london          5
1  somedate    united state  newyork          5

关于python - Panda 的数据框将一列拆分为多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38840460/

相关文章:

python - 根据 Pandas 中正则表达式的条件测试创建一个新列

python - 我们如何使用 pandas 在 python 中使用 Coalesce 来处理多个数据帧

python - 寻找对象之间的第 n 级联系

Python __call__ 特殊方法实战示例

python - 有效的正则表达式

python - Pandas 中的 Groupby、map 和 sum 导致 NaN

python - pandas 与 numpy 的不同标准

python - Python中有什么函数可以聚合秒级毫秒数据吗?

python - 缩短 DataFrame 或缩短 CSV 文件

Python StatsModels 时间序列分解重复图