我有一个非常简单的数据框,如下所示。我试图操纵 x 轴(日期),使其从 1996 年 31 月 12 日开始,到 2016 年 31 月 12 日结束,增量为 365 天。
Datafame:
Date A B
1996-31-12 10 3
1997-31-03 5 6
1997-31-07 7 5
1997-30-11 3 12
1997-31-12 4 10
1998-31-03 5 8
.
.
.
2016-31-12 3 9
#change date string to datetime variable
df12.Date = pd.to_datetime(df12.Date)
fig, ax = plt.subplots()
ax.plot_date(df12.Date,df12.A)
ax.plot_date(df12.Date,df12.B)
ax.xaxis.set_major_locator(mdates.YearLocator())
ax.xaxis.grid(True, which="major")
ax.yaxis.grid()
ax.xaxis.set_major_formatter(mdates.DateFormatter('%b\n%Y''))
plt.tight_layout()
plt.show()
Run Code Online (Sandbox Code Playgroud)
当我尝试运行上面的代码时,我收到一条错误消息,我不确定它的含义 - OverflowError: Python int太大,无法转换为C long。有人知道这意味着什么吗?如果没有,还有其他方法可以做我想做的事吗?
我有一个数据框,我想将 A 列中的每一行除以 A 列的总和,并使其成为数据框中的一个新列。
Example:
Col A New Col
2 .22
3 .33
4 .44
Total = 9 1.00
Run Code Online (Sandbox Code Playgroud)
我尝试对 Col A 求和,然后尝试除以“Total”,但因为 Total 不是一列而是一行,所以它不起作用。我只是为新列中的每一行获取 NaN。
df['New Col']= (df['ColA']/df.loc['Total'])
Run Code Online (Sandbox Code Playgroud)
我知道你也可以在一行代码中集成一个总和计算,而不是创建一个总计行,但不知道如何做到这一点,并且在网上找不到任何东西。
df['New Col']= (df['ColA']/df.sum())
Run Code Online (Sandbox Code Playgroud)
想法?
我创建了一个matplotlib饼图:
df.plot(kind='pie', subplots=True, figsize=(6, 4))
Run Code Online (Sandbox Code Playgroud)
我的数据框由两列组成 - 国家和价值(%分布),列出了大约25个国家/地区.我想只按价值(按最高百分比)绘制前10个国家,并在图中计算剩余的国家%值,并将其命名为"所有其他国家".如何使用matplotlib使用.plot函数执行此操作?
Country Value
Albania 4%
Brazil 3%
Denmark 5%
France 10%
Mexico 3%
Nigeria 15%
Spain 4%
U.S. 5%
Run Code Online (Sandbox Code Playgroud) 我有一个包含许多列的数据框。我正在尝试过滤其中一列(“区域”)并根据“区域”列中的这 4 个区域中的每一个创建一个单独的数据框。然后在这 4 个单独的数据帧中的每一个上运行包含大量计算的大代码块,而不必单独重写大代码块 4 次。
我知道我可以使用 .isin 函数进行列过滤,并为我的 4 个地区(美国、新兴市场、欧洲、亚洲)执行此操作:
US = df[df['Region'].isin('US')]
EM = df[df['Region'].isin('EM')]
Europe = df[df['Region'].isin('Europe')]
Asia = df[df['Region'].isin('Asia')]
Run Code Online (Sandbox Code Playgroud)
然后在 4 个新数据帧上运行我的代码块。但是我会分别执行我的大块计算代码 4 次,这太混乱了。我怎样才能在循环中做到这一点,所以我只需要一次编写我的大代码块?如果除了 for 循环之外,我还可以使用另一个函数来执行此操作,这也很棒。感谢任何帮助 - 尝试学习。
虚拟代码:
df = pd.DataFrame({'a':[1,2,3,4,5,6], 'b':['cats','dogs','birds','pianos','elephant','dinos'], 'Region' : ['EM', 'US', 'US', 'Europe', 'Asia', 'Asia']})
Run Code Online (Sandbox Code Playgroud)