使用 numpy 重复函数创建 Pandas DataFrame

Gau*_*sal 4 python numpy dataframe pandas

我正在尝试创建一个 Pandas DataFrame,其中一列多次使用 numpy repeat 函数。这是我在 R 中使用c和执行此操作的方法,rep并且它有效:

df <- data.frame(
  date = seq.Date(as.Date('2018-12-01'), as.Date('2019-12-01'), by='month'),
  value = c(rep(0.08, 7), rep(0.06, 6)),
)
Run Code Online (Sandbox Code Playgroud)

这是我在熊猫中尝试的内容,但它引发了错误arrays must all be same length

import numpy as np
import pandas as pd
df= pd.DataFrame({
    'date': pd.date_range('2018-12-01', '2019-12-01', freq='MS'),
    'value': [np.repeat(0.08, 7), np.repeat(0.06, 6)]
})
Run Code Online (Sandbox Code Playgroud)

我怎么能在熊猫中做到这一点?

WeN*_*Ben 5

这是你需要的吗?append

df= pd.DataFrame({
    'date': pd.date_range('2018-12-01', '2019-12-01', freq='MS'),
    'value': np.append(np.repeat(0.08, 7), np.repeat(0.06, 6))
})
df
Out[615]: 
         date  value
0  2018-12-01   0.08
1  2019-01-01   0.08
2  2019-02-01   0.08
3  2019-03-01   0.08
4  2019-04-01   0.08
5  2019-05-01   0.08
6  2019-06-01   0.08
7  2019-07-01   0.06
8  2019-08-01   0.06
9  2019-09-01   0.06
10 2019-10-01   0.06
11 2019-11-01   0.06
12 2019-12-01   0.06
Run Code Online (Sandbox Code Playgroud)

另外,R中的仅供参考

rep(c(0.08,0.06), c(7,6))
Run Code Online (Sandbox Code Playgroud)


piR*_*red 5

np.repeat可以为repeats参数采用类似数组的东西。

df = pd.DataFrame({
    'date': pd.date_range('2018-12-01', '2019-12-01', freq='MS'),
    'value': np.repeat([.08, .06], [7, 6])
})
Run Code Online (Sandbox Code Playgroud)