我有一个数据集,并且一个样本看起来像这样:
ID_1 ID_2
97353 959
9723 168
128 743512
124564 14599
16149 14149
我正在尝试使用for循环创建一个列表,该列表将在同一行上组合ID并产生例如:
[[97353, 959], [9723, 168]...]
到目前为止,我已经写过:
list1 = []
for i in df:
list1.append(i)
但是,这只会产生如下输出:
['9', '7', '3', '5', '3', '\t', '9', '5', '9', '\n',...
有人可以建议如何修改for循环以产生我想要获得的输出吗?谢谢!
答案 0 :(得分:1)
将每个列提取为列表,然后使用zip列表理解或在zip对象上使用list创建列表的列表。例如,您可以从两个列表中以所需的形式获取数据。
l1 = [1,2,3,4,5]
l2 = [6,7,8,9,10]
您可以使用以下任一表达式获取所需内容
list(zip(l1,l2))
[[x,y] for x, y in zip(l1,l2)]
如果您使用的是熊猫,则可以像这样将列提取为列表
ID_1_list = df['ID_1'].tolist()
ID_2_list = df['1D_2'].tolist()
只需将df替换为数据框的名称即可。
将以上所有内容放在一起:
ID_1_list = df['ID_1'].tolist()
ID_2_list = df['1D_2'].tolist()
my_data = list(zip(ID_1_list, ID_2_list))
答案 1 :(得分:0)
假设它为熊猫数据框,请尝试以下操作:
data = {'ID_1': [97353, 9723, 128, 124564],
'ID_2': [959, 19, 20, 18]
}
df = pd.DataFrame(data, columns=['ID_1','ID_2'])
list1 = []
for i in range(len(df)) :
list1.append([df.loc[i, "ID_1"], df.loc[i, "ID_2"]])
print (list1)
##[[97353, 959], [9723, 19], [128, 20], [124564, 18]]
答案 2 :(得分:0)
下面的代码应该可以工作。
list1 = []
f = open("file.txt", "r")
next(f)
for i in f:
words = i.split()
for j in range(0, len(words)):
words[j] = int(words[j])
list1.append(words)
print(list1)
答案 3 :(得分:0)
您可以将它们打印为列表中的元组
/**
* @ORM\OneToOne(targetEntity="App\Entity\StockPriceImportExecutions", mappedBy="import")
* @ORM\OrderBy({"startedAt" = "DESC"})
*/
private $lastExecution;
输出:
[(1,'a'),(2,'b'),(3,'c'),(4,'d'),(5,'e')]