首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >熊猫将数据绑定到df中

熊猫将数据绑定到df中
EN

Stack Overflow用户
提问于 2019-07-16 18:27:27
回答 2查看 125关注 0票数 1

我有一个时间序列数据的CSV文件,它是一个标有oatSensor (外部空气温度传感器根据不同过程的条件过滤)的列,如果可能的话,我想找一种方法将数据以“每天”的方式存储。

例如,我可以用下面的代码来存储整个数据集。外部空气温度值的增量为-5至55。

代码语言:javascript
复制
import pandas as pd

df = pd.read_csv('ahu1OatFiltHourFilt.csv', index_col='Date', parse_dates=True)
df.describe()

cats = ['-5--1',
        '0-4','5-9','10-14','15-19','20-24',
        '25-29','30-34','35-39','40-44','45-49','50-54']
bins = [-5, 0,
        5, 10, 15, 20, 25, 30, 35,
       40, 45, 50, 55]

df2 = (df.groupby([df.index, pd.cut(df['oatSensor'], bins, labels=cats)])
            .size()
            .unstack(fill_value=0)
            .reindex(columns=cats, fill_value=0))

df2.sum(axis = 0)

它将输出以下内容:

代码语言:javascript
复制
oatSensor

-5--1      3
0-4        6
5-9       19
10-14     49
15-19     65
20-24    125
25-29    230
30-34    201
35-39    171
40-44    205
45-49    179
50-54    183
dtype: int64

但最终我希望找到一种方法:

1)为每个bin类别cats df4 = pd.DataFrame(df2, columns=cats)创建单独的df列

2)为每个day的每个sum重新采样整个数据。

希望这样,我正在使用的数据在这个git回购中。

谢谢你的帮助。

编辑--如果我使用df3 = df2.stack() --这给了我想要的(除了重采样之外),但是我如何实现创建单独的cats数据格式,然后可以每天重放一笔数据呢?

代码语言:javascript
复制
Date                 oatSensor
2018-09-26 05:00:00  -5--1        0
                     0-4          0
                     5-9          0
                     10-14        0
                     15-19        0
                     20-24        0
                     25-29        0
                     30-34        0
                     35-39        0
                     40-44        0
                     45-49        0
                     50-54        1
2018-09-26 06:00:00  -5--1        0
                     0-4          0
                     5-9          0
                     10-14        0
                     15-19        0
                     20-24        0
                     25-29        0
                     30-34        0
                     35-39        0
                     40-44        0
                     45-49        0
                     50-54        1
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-07-16 22:32:23

我认为您想要的是一个数据,其中每一行都是您所描述的回收箱中观察到的数量的总和,并在观察进行的当天建立索引。

如果这是真的,那么我认为你是超级,超级亲密!

变化

df2 = (df.groupby([df.index, pd.cut(df['oatSensor'], bins, labels=cats)]) .size() .unstack(fill_value=0) .reindex(columns=cats, fill_value=0))

改为:

df2 = (df.groupby([df.index.date, pd.cut(df['oatSensor'], bins, labels=cats)]) .size() .unstack(fill_value=0) .reindex(columns=cats, fill_value=0))

更改是将.date添加到groupby中的第一个参数。这将给您提供数据,就像我前面描述的那样。

我不确定这是否符合您关于每个cat的单独数据格式的观点。通过我创建的dataframe,您可以为任何列创建一个新的df,只需:

df_cat = df2['-5--1']

票数 0
EN

Stack Overflow用户

发布于 2019-07-16 23:43:13

试试这段代码。祝你好运;)

代码语言:javascript
复制
import pandas as pd

distance = 5
url = 'https://raw.githubusercontent.com/bbartling/Data/master/ahu1OatFiltHourFilt.csv'
df = pd.read_csv(url)
df['Date'] = pd.to_datetime(df['Date'])
min = df.oatSensor.min()
max = df.oatSensor.max()
min = int(min - (min % distance))
max = int(max + distance - (max % distance))
labels = ["{0} - {1}".format(i, i + distance) for i in range(min, max, 
distance)]
df['group'] = pd.cut(df.oatSensor, range(min, max + distance, distance), 
right=False, labels=labels)
df2 = df.groupby(['group']).count()
df['one'] = 1
df3 = df.pivot_table('one','Date','group')
print(df3.tail())

退出:

代码语言:javascript
复制
# group                -5 - 0  0 - 5  5 - 10  ...  85 - 90  90 - 95  95 - 100
# Date                                        ...                            
# 2019-07-06 13:00:00     NaN    NaN     NaN  ...      NaN      NaN       NaN
# 2019-07-06 14:00:00     NaN    NaN     NaN  ...      NaN      NaN       NaN
# 2019-07-06 15:00:00     NaN    NaN     NaN  ...      NaN      NaN       NaN
# 2019-07-06 16:00:00     NaN    NaN     NaN  ...      NaN      NaN       NaN
# 2019-07-09 15:00:00     NaN    NaN     NaN  ...      1.0      NaN       NaN
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57063396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档