我正在尝试使用Pandas DataFrame对象在pyplot中创建一个简单的散点图,但是想要一种有效的方法来绘制两个变量,但是具有由第三列(键)指示的符号.我尝试过使用df.groupby的各种方法,但没有成功.下面是一个示例df脚本.这会根据'key1'为标记着色,但Id喜欢看到带有'key1'类别的图例.我接近了吗?谢谢.
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame(np.random.normal(10,1,30).reshape(10,3), index = pd.date_range('2010-01-01', freq = 'M', periods = 10), columns = ('one', 'two', 'three'))
df['key1'] = (4,4,4,6,6,6,8,8,8,8)
fig1 = plt.figure(1)
ax1 = fig1.add_subplot(111)
ax1.scatter(df['one'], df['two'], marker = 'o', c = df['key1'], alpha = 0.8)
plt.show()
Run Code Online (Sandbox Code Playgroud) 我有兴趣报告在多个时间序列列中超过阈值的日期。该索引是与时间序列数据相关的站点位置相关的日期时间值和列名称。我需要一个类似于“idxmax”的函数,但要返回时间序列中第一个超过阈值的索引。这似乎是一项简单的任务,但我是一个新的 Python 用户,需要一些指导。谢谢。
我正在尝试将具有两列(重复的date_time序列和单个数值列)的长文本文件重新整形为具有单个索引date_time和多列数据的Pandas数据帧.实际文件是100套82年的每日降雨量数据(来自随机发电机),约为300万线.我希望在82 x 365(366闰年)date_time指数中有100列降雨数据.为了简化练习,我在下面给出一个例子(代表闰年的四行序列):
2014/01/01 1
2014/01/02 2
2014/01/03 3
2014/01/01 4
2014/01/02 5
2014/01/03 6
2014/01/04 7
2014/01/01 8
2014/01/02 9
2014/01/03 10
Run Code Online (Sandbox Code Playgroud)
所需的输出类似于:
0 1 2
2014/01/01 1 4 8
2014/01/02 2 5 9
2014/01/03 3 6 10
2014/01/04 nan 7 nan
Run Code Online (Sandbox Code Playgroud)
这似乎非常简单,但它让我击败.我试图将原始系列转换为数据帧,然后使用以下内容,但Pandas似乎不喜欢单个列:
df.pivot()
Run Code Online (Sandbox Code Playgroud)