python - Pandas : from a two columns dataframe to a (time series) multi-columned dataFrame

标签 python pandas dataframe time-series

假设我们有一个像这样的数据框

df = pd.DataFrame(columns=['A', 'B','C'])
df.loc[0]=[1,2,3]
df.loc[1]=[4,5,6]
df.loc[2]=[7,8,9]
df.loc[3]=[10,11,12]
df.loc[4]=[13,14,15]
df.loc[5]=[16,17,18]
df.loc[6]=[19,20,21]
df


    A   B   C

0   1   2   3

1   4   5   6

2   7   8   9

3   10  11  12

4   13  14  15

5   16  17  18

6   19  20  21

我想修改 df 以获得 df2;

df2 = pd.DataFrame(columns=['first', 'second','third','fourth','fifth','sixth'])
df2.loc[0]=[1,2,4,5,7,8]
df2.loc[1]=[4,5,7,8,10,11]
df2.loc[2]=[7,8,10,11,13,14]
df2.loc[3]=[10,11,13,14,16,17]
df2.loc[4]=[13,14,16,17,19,20]
df2

    first   second  third   fourth  fifth   sixth

0   1   2   4   5   7   8

1   4   5   7   8   10  11

2   7   8   10  11  13  14

3   10  11  13  14  16  17

4   13  14  16  17  19  20

也就是说,我想用df的前两列的三行来填充df2的第一行。 然后我们继续用 df 的两列的接下来的三行填充 df2 的第二行,依此类推。

我应该怎么做才能从 df 转移到 df2? 我可以做一些基本且简单的操作。 但现在看来对我来说还是很难。

谁能帮帮我吗?

最佳答案

更简单的解决方案可能是删除“C”列。只需连接 3 个列表即可为 df2 生成一行。

代码如下:

df.drop(['C'] ,axis = 1 , inplace = True)

df2 = pd.DataFrame(columns=['first', 'second','third','fourth','fifth','sixth'])

for i in range(0,len(df.A) - 2):
    df2.loc[i] = list(df.loc[i]) + list(df.loc[i+1]) + list(df.loc[i+2])

print(df2)

关于python - Pandas : from a two columns dataframe to a (time series) multi-columned dataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63409225/

相关文章:

python - 尝试使用 groupby 获取最常见的值并得到 IndexError

Python Pandas : Trying to speed-up a per row per date in date_range operation

r - 如何使用R中的条件语句将一个数据框拆分为多个数据框

python - Flask WTForms - 来自数据库的动态 BooleanField

python - 如何在 web2py 之外运行任务并检索输出

python - 从单行 pandas DataFrame 中提取值

python - 使用 K-Nearest 聚类颜色的有效方法

pandas - 是否可以在 pandas 中执行此操作?

python - Pandas - 创建新列,其中值取自同一数据框中的其他行

r - 寻找变量的最大值