如何用pandas中的重复数据填充行?

Amy*_*mus 11 python dataframe pandas

在R中,当向数据帧添加不等长的新数据时,值会重复以填充数据帧:

df <- data.frame(first=c(1,2,3,4,5,6))
df$second <- c(1,2,3)
Run Code Online (Sandbox Code Playgroud)

收益:

  first second
1     1      1
2     2      2
3     3      3
4     4      1
5     5      2
6     6      3
Run Code Online (Sandbox Code Playgroud)

但是,大熊猫需要相同的索引长度.

我如何在R中"填写"重复数据,就像我在R中一样?

Meo*_*eow 10

itertools的循环方法适用于重复常见模式.

from itertools import cycle

seq = cycle([1, 2, 3])
df['Seq'] = [next(seq) for count in range(df.shape[0])]
Run Code Online (Sandbox Code Playgroud)


Yeq*_*ang 6

似乎没有优雅的方式.这是我刚才想到的解决方法.基本上创建一个比原始数据框大的重复列表,然后将它们连接起来.

import pandas
df = pandas.DataFrame(range(100), columns=['first'])
repeat_arr = [1, 2, 3]
df = df.join(pandas.DataFrame(repeat_arr * (len(df)/len(repeat_arr)+1),
    columns=['second']))
Run Code Online (Sandbox Code Playgroud)