我想离开这里:
import pandas as pddf = pd.DataFrame({'ID': [1,2],'Value_2013': [100,200],'Value_2014': [245,300],'Value_2016': [200,float('NaN')]})print(df) ID Value_2013 Value_2014 Value_20160 1 100 245 200.01 2 200 300 NaN
至:
df_new = pd.DataFrame({'ID': [1,1,2,'Year': [2013,2014,2016,2013,2014],'Value': [100,245,200,300]})print(df_new) ID Value Year0 1 100 20131 1 245 20142 1 200 20163 2 200 20134 2 300 2014
我有什么想法可以面对这个挑战吗?
解决方法pandas.melt()
方法让你到了一半.之后,这只是一些小的清理. df = pd.melt(df,ID_vars='ID',var_name='Year',value_name='Value')df['Year'] = df['Year'].map(lambda x: x.split('_')[1])df = df.dropna().astype(int).sort_values(['ID','Year']).reset_index(drop=True)df = df.reindex_axis(['ID','Value','Year'],axis=1)
print(df) ID Value Year0 1 100 20131 1 245 20142 1 200 20163 2 200 20134 2 300 2014@H_502_37@ 总结
以上是内存溢出为你收集整理的python中从宽到长的数据 *** 作示例全部内容,希望文章能够帮你解决python中从宽到长的数据 *** 作示例所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)