python - Pandas-如何添加带有跳过行的条目的列?

标签 python pandas indexing time-series

我有三个时间序列数组。其中两个具有 3 小时间隔的值,一个具有 6 小时间隔的值。我想将它们全部添加到同一个数据帧中,以便使用设置为索引的时间戳轻松绘制时间序列,但我不确定如何添加 6 小时间隔数组来跳过行,以便将值放置在正确的时间。

我在下面有一个工作示例。

import pandas as pd

A = [ 1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.,  9., 10.]
B = [11., 12., 13., 14., 15., 16., 17., 18., 19., 20.]
C = [ 2.,  4.,  6.,  8., 10.                         ]

data = { 'A_col': A,
         'B_col': B
       }
df   = pd.DataFrame(data,columns=['A_col','B_col'])
print(df)
   A_col  B_col
0    1.0   11.0
1    2.0   12.0
2    3.0   13.0
3    4.0   14.0
4    5.0   15.0
5    6.0   16.0
6    7.0   17.0
7    8.0   18.0
8    9.0   19.0
9   10.0   20.0

本质上,我想将 C 添加为一列,并使其值出现在索引 1、3、5 等处,以与 A_col 的值对齐。我如何有效地做到这一点? Pandas 告诉我每列的大小必须相同。 (我正在使用的实际时间序列数组相当长。)我希望生成一个时间序列图,其中所有值都位于 x 轴的正确位置。

注意 - 我对 pandas 比较陌生,但对 numpy 有更多经验。

最佳答案

沿着这条线的事情:

df['C'] = np.nan
df.iloc[1::2, -1] = C    
print(df)

输出:

   A_col  B_col     C
0    1.0   11.0   NaN
1    2.0   12.0   2.0
2    3.0   13.0   NaN
3    4.0   14.0   4.0
4    5.0   15.0   NaN
5    6.0   16.0   6.0
6    7.0   17.0   NaN
7    8.0   18.0   8.0
8    9.0   19.0   NaN
9   10.0   20.0  10.0

关于python - Pandas-如何添加带有跳过行的条目的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59430598/

相关文章:

java - Java 中的 NamedTuple 替代方案是什么?

python - Scipy.linalg.solve 最大数组大小

python - 如何使用本地版本的 PyCharm 远程运行 PyCharm?

python - 如何在优先考虑其中一个维度的同时对二维列表进行排序

python - 如何根据备用列中的相应值将一列中的特定值添加到列表中

mongodb - 我应该在 mongodb 中对 bool 标志使用稀疏索引吗?

matlab - 索引矩阵中的重复项 : Matlab

python - python中带有gridspec.GridSpec的变量wspace

pandas - 如何比较 2 个数据框列并根据结果将值添加到新数据框

python - 将 numpy 数组元素包装为整数