用重复值填充熊猫数据框

ani*_*asp -2 python repeat dataframe pandas

我在 R 中有这个代码

a <- c(NA)
a<- matrix(c(a), nrow = 80)
a<-as.data.frame(a)

a[ c(T,F,F,F), ] <- "aaa"
a[ c(F,T,F,F), ] <- "bbb"
a[ c(F,F,T,F), ] <- "ccc"
a[ c(F,F,F,T), ] <- "ddd"
Run Code Online (Sandbox Code Playgroud)

如何在 python 中将它复制为熊猫数据框?

str(a)
Run Code Online (Sandbox Code Playgroud)

'data.frame':80 个观察。共 1 个变量:

$ V1: chr "aaa" "bbb" "ccc" "ddd" ...

cs9*_*s95 5

您可以使用np.tile和构建一个系列。

import pandas as pd
import numpy as np

s = pd.Series(np.tile(['aaa', 'bbb', 'ccc', 'ddd'], 20) )

print(s.shape) # size - 80 rows
(80,)

print(s.head(10)) # shows only the first 10 rows
0    aaa
1    bbb
2    ccc
3    ddd
4    aaa
5    bbb
6    ccc
7    ddd
8    aaa
9    bbb
dtype: object
Run Code Online (Sandbox Code Playgroud)

如果你想要一个数据框,你会这样做:

df = pd.DataFrame({'V1' : np.tile(['aaa', 'bbb', 'ccc', 'ddd'], 20)})

print(df.head(10))
    V1
0  aaa
1  bbb
2  ccc
3  ddd
4  aaa
5  bbb
6  ccc
7  ddd
8  aaa
9  bbb
Run Code Online (Sandbox Code Playgroud)

处理动态行:

import pandas as pd
import numpy as np

s = pd.Series(np.tile(['aaa', 'bbb', 'ccc', 'ddd'], 20) )

print(s.shape) # size - 80 rows
(80,)

print(s.head(10)) # shows only the first 10 rows
0    aaa
1    bbb
2    ccc
3    ddd
4    aaa
5    bbb
6    ccc
7    ddd
8    aaa
9    bbb
dtype: object
Run Code Online (Sandbox Code Playgroud)

或者,

df = pd.DataFrame({'V1' : tiled_vals})
Run Code Online (Sandbox Code Playgroud)