Как написать и зациклить список столбцов в Python DataFrame? - PullRequest
2 голосов
/ 18 октября 2019
list = [a, b, c, d, e, f, g, h]

Как написать и зациклить вышеприведенный список в определенном столбце в кадре данных Python, чтобы получить результат ...

Кадр данных:

Столбец N (например,)

a   
b   
c   
d  
e  
f  
g  
h  
a  
b  
c  
d  
e  
f  
g  
h  
...  
(many times)   
...  
a  
b  
c  
d  
e  
f  
g  
h 

Или есть ли другой способ выполнить преобразование, описанное выше, без необходимости использования list? Большое спасибо.

Ответы [ 4 ]

2 голосов
/ 18 октября 2019

Сначала не используйте list для имени переменной, потому что builtin (кодовое слово Python), а затем для повторного использования numpy.tile:

import numpy as np

L = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
N =  2
df = pd.DataFrame({'col': np.tile(L, N)})
print (df)
   col
0    a
1    b
2    c
3    d
4    e
5    f
6    g
7    h
8    a
9    b
10   c
11   d
12   e
13   f
14   g
15   h
2 голосов
/ 18 октября 2019

Переменная times - это количество раз, которое вы хотите повторить. Попробуйте следующее:

import pandas as pd

letters = 'abcdefgh'
times = 4
df = pd.DataFrame({'Column Name': [x for x in letters]*times})
print(df)

или вот это:

import pandas as pd
from string import ascii_lowercase

times = 4
df = pd.DataFrame({'Column Name': [x for x in ascii_lowercase[:8]]*times})
print(df)

ascii_lowercase возвращает все буквы алфавита.

1 голос
/ 18 октября 2019

Вы можете повторить список с помощью list * n, где n - количество повторений. Затем присвойте его 'Column N' кадра данных, например:

import pandas as pd
list = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']

df = pd.DataFrame()
df['Column N'] = list * 5
print(df)
0 голосов
/ 18 октября 2019
import pandas as pd
import numpy as np
print(pd.DataFrame(columns=['column name'],data= ['1', np.nan, 'c', 'd', 'e', 'f', 'g', 'h']*5))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...