python - 从 Python 中缺失值的 DataFrame 创建系列

标签 python pandas dataframe series

我想从我拥有的 DataFrame 在 pandas 中创建一个系列。

DataFrame 有 3 列:“日期”、“时间”和“频率”。 我希望前两列(“日期”和“时间”)是新系列的索引。

不幸的是,我拥有的数据包含缺失值。因此,当我尝试转换为 Series 时,我在指定索引时遇到了问题。通常,如果我没有缺失值,我会使用:

index = pd.data_range(start = df.date[0], end = '2015/03/06 17:07:05', freq = 'S') 在 pd 中。系列()功能。

但是如果我在示例中这样做,则会出现错误,因为新索引的长度比实际索引长(新索引没有缺失值)。

所以这是我的 DataFrame 的一个小示例:

Out[2]: 
          date      time   frequ
0   2015/03/06  17:06:26  50.091
1   2015/03/06  17:06:27  50.087
2   2015/03/06  17:06:29  50.084
3   2015/03/06  17:06:30  50.083
4   2015/03/06  17:06:31  50.082
..         ...       ...     ...
33  2015/03/06  17:07:03  50.079
34  2015/03/06  17:07:04  50.078
35  2015/03/06  17:07:05  50.077

(因此可以看出,2015/03/06 17:06:28的值和时间丢失了)

这就是 Series (ts) 或多或少应该看起来的样子:

2015/03/06  17:06:26  50.091
2015/03/06  17:06:27  50.087
2015/03/06  17:06:29  50.084
2015/03/06  17:06:30  50.083
2015/03/06  17:06:31  50.082
...              ...     ...
2015/03/06  17:07:03  50.079
2015/03/06  17:07:04  50.078
2015/03/06  17:07:05  50.077

同样,在此结果中,前两列是索引

所以如果我调用例子:

In[3]: ts['2015/03/06 17:06:26': '2015/03/06 17:06:29']

我会得到:

out[3]: 
2015/03/06  17:06:26  50.091
2015/03/06  17:06:27  50.087
2015/03/06  17:06:29  50.084

Freq: S, dtype: float64

最后,这是我写的代码:

import pandas as pd

data = {'frequ': sum_freq, 'time': sum_time, 'date': date_list}
df = pd.DataFrame(data, columns = ['date', 'time', 'frequ'])
ts = pd.Series(df.frequ.values, index = ???)

有人知道如何解决这个问题吗?

谢谢!!!

(我使用的是 Python 2.7.6)

最佳答案

如果 date 列的数据类型为 datetime64[ns]time 列的数据类型为 timedelta64[ns] 然后你可以将它们加在一起形成一个 dtype datetime64[ns] 的新列。然后您可以将该列设置为索引并选择 frequ 列以获得所需的系列:

import pandas as pd

df = pd.read_table('data', delim_whitespace=True)
df['date'] = pd.to_datetime(df['date'])
df['time'] = pd.to_timedelta(df['time'])
df['datetime'] = df['date'] + df['time']
ts = df.set_index(['datetime'])['frequ']

产量

datetime
2015-03-06 17:06:26    50.091
2015-03-06 17:06:27    50.087
2015-03-06 17:06:29    50.084
2015-03-06 17:06:30    50.083
2015-03-06 17:06:31    50.082
2015-03-06 17:07:03    50.079
2015-03-06 17:07:04    50.078
2015-03-06 17:07:05    50.077
Name: frequ, dtype: float64

关于python - 从 Python 中缺失值的 DataFrame 创建系列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28906473/

相关文章:

r - 聚合/总结每组多个变量(例如总和、平均值)

python - 如何从该 xml 中正确提取信息

python - "is"运算符(operator)未按预期工作

python - 可视化多个分类值在数据框中的行和列之间有何不同

python - 使用 Pandas 分组和比较组

python - 计算 pandas 中数据框中每一列的值变化,忽略 NaN 变化

python - 搜索日志,输出匹配前后的行

Python 单元测试未运行

python - 将包含字符串和 NAN 的列转换为 Pandas 中的整数列表

python - 从时间序列中插值单个值