字符串& 列中的对象(Pandas)

问题描述 投票:0回答:1

GitHub 笔记本的链接

我目前正在做一个项目,我正在分析德克萨斯州奥斯汀的仇恨犯罪趋势。目前,我的数据有一个问题。对于 "事件编号 "一栏,我想把它分成两部分......"-"之前的数字清楚地表明了年份,我想把它合并到 "月 "栏中。'-'后面的数字我想保留在'incident_number'列中。

有谁知道如何实现这个目标?

最初我试过。

aus_final['incident_number'] = pd.to_datetime(aus_final['incident_number'], format='%d%m%Y')

结果出了个错误

ValueError: time data '2017-241137' does not match format '%d%m%Y' (match)

我知道会发生这种情况,但我还是要试一下。 :P 不用说,我对Python还是个新手。任何帮助都是非常感激的。

python pandas dataframe multiple-columns
1个回答
0
投票

参考笔记本的链接

虽然试了几次,但我终于做对了。说实话,这是一个试错的问题。我在stackoverflow上看了好几个问题论坛,跟pandas有关,以及如何结构、格式化列等,比如说 分列, 处理分类数据 & 关于分类数据的另一种援助 以此为例。最后我用下面的代码中了大奖。

new = aus_final["incident_number"].str.split("-", n = 1, expand = True)
aus_final["year"]= new[0]
aus_final["occurence_number"]= new[1]
aus_final.drop(columns =["incident_number"], inplace = True)
aus_final['date'] = aus_final[['month', 'year']].agg('-'.join, axis=1)
aus_final.drop(['month', 'occurence_number', 'year'], axis=1, inplace=True)
aus_final = aus_final[['date', 'bias', 'number_of_victims_over_18', 'offense_location']]
aus_final.rename(columns={'number_of_victims_over_18': 'victims'}, inplace=True)
aus_final['date'] = pd.to_datetime(aus_final['date'])
aus_final.set_index('date', inplace=True)

我可能学得很慢,但只要我自己试过几次,我就会记住所有的东西 :) 谢谢你们给我指引了正确的方向!

© www.soinside.com 2019 - 2024. All rights reserved.