我有一个像这样的宽格式的数据集
Index Country Variable 2000 2001 2002 2003 2004 2005
0 Argentina var1 12 15 18 17 23 29
1 Argentina var2 1 3 2 5 7 5
2 Brazil var1 20 23 25 29 31 32
3 Brazil var2 0 1 2 2 3 3
Run Code Online (Sandbox Code Playgroud)
我希望将我的数据重新整形为长,以便那一年,var1和var2成为新列
Index Country year var1 var2
0 Argentina 2000 12 1
1 Argentina 2001 15 3
2 Argentina 2002 18 2
....
6 Brazil 2000 20 0
7 Brazil 2001 23 1
Run Code Online (Sandbox Code Playgroud)
当我通过编写只有一个变量时,我得到了我的代码
df=(pd.melt(df,id_vars='Country',value_name='Var1', …Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个循环,该循环将使图具有25个子图,每个国家1个图。我的代码制作了一个包含25个子图的图形,但是这些图是空的。我该如何更改才能使数据显示在图表中?
fig = plt.figure()
for c,num in zip(countries, xrange(1,26)):
df0=df[df['Country']==c]
ax = fig.add_subplot(5,5,num)
ax.plot(x=df0['Date'], y=df0[['y1','y2','y3','y4']], title=c)
fig.show()
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 pd.read_excel 将大量主要为数字数据的 .xls 和 .xlsx 文件读入 python。但是,这些文件使用 em-dash 来表示缺失值。我试图让 Python 将所有这些长破折号替换为 nans。我似乎找不到让 Python 甚至识别字符的方法,更不用说替换它了。我尝试了以下不起作用
df['var'].apply(lambda x: re.sub(u'\2014','',x))
Run Code Online (Sandbox Code Playgroud)
我也试过简单
df['var'].astype('float')
Run Code Online (Sandbox Code Playgroud)
将数据框中的所有 em-dashs 转换为 nans,同时将数字数据保留为浮点数的最佳方法是什么?