我有一个大小为x的列表abc [],我有一个形状为2x的数据框。现在,我想将列表abc []中的值分配给数据框中的新列。
当DF的大小等于或小于列表时,我只想说:
lst = [1,2,3, "hi", 5]
string = "bye"
print lst[3:4] + [string]
当df的大小超过列表(在这种情况下是两次)时,我会执行以下操作:
df['NewCol'] = abc[:df.shape[0]]
这里df的大小恰好是列表大小的两倍。而且我总是会遇到df的大小是列表的两倍/三倍的情况。这样一个条目就可以匹配两个或三个连续的条目。
有没有更快的方法来实现这个目标?
答案 0 :(得分:1)
for($i = 0, $pagelen = rand(3,5); $i < $pagelen; $i++)
我总是会遇到df的大小是列表的两倍/三倍的情况。
df = pd.DataFrame(np.random.randn(4, 3), columns=list('ABC'))
abc = ['a', 'b']
答案 1 :(得分:0)
您可以使用while 1 > 0
重复列表,因为您确定总会有一个整数。
numpy.repeat
如果您希望将列表重复整体,则可以使用import numpy as np
import pandas as pd
df = pd.DataFrame({'a':np.arange(6)})
abc = [4, 5, 6]
df['NewCol'] = np.repeat(abc, len(df)/len(abc))
df
a NewCol
0 0 4
1 1 4
2 2 5
3 3 5
4 4 6
5 5 6
:
np.tile