将列表追加为空数据框的行

时间:2019-03-01 16:09:42

标签: python pandas

我试图将行从一个数据框添加到另一个空数据框;

for index, rows in data.iterrows():
    new = list(rows)
    var = new[0]

    for i in ran:
        if var in ran:
            empty_df.append(new) 

我选择一个随机的第一列条目,例如“ image1.png”,然后想要选择第一列中所有具有“ image1”的行。然后,我想将这些行移动到新的数据框中。

new = ['image1.png', 1023, 554, 1126, 646, 'nucleus'] 
ran = 'image1.png'

当我想要的时候,输出是一个空的数据帧;

image1.png, 1023, 554, 1126, 646, nucleus
image1.png, 1023, 554, 116, 646, nucleus
image1.png, 103, 544, 1126, 6, nucleus
image1.png, 10, 354, 1556, 56, nucleus
image1.png, 13, 55, 1216, 46, nucleus
image1.png, 103, 54, 116, 326, nucleus 

有人可以帮忙吗?

3 个答案:

答案 0 :(得分:1)

您可以通过以下方式修正代码:

 empty_df.append(new)

收件人:

 empty_df = empty_df.append(new)

但是我不认为你应该这样做。使用

,您可以更轻松地复制整个数据框
 empty_df = data.copy()

答案 1 :(得分:0)

我相信您可以通过基于ran过滤新的DF来简化您的所有工作

empty_df = data[data.iloc[:,0] == ran]
empty_df.head()
Output:
    0   1   2   3   4   5
0   image1.png  1023    554 1126    646 nucleus
1   image1.png  1023    554 116 646 nucleus
2   image1.png  103 544 1126    6   nucleus
3   image1.png  10  354 1556    56  nucleus
4   image1.png  13  55  1216    46  nucleus

答案 2 :(得分:0)

要更改列用途 假设存储图像名称的列的名称为imageName,而ran是变量。

new_df = data.loc[data['imageName'] == ran ] #if ran is a variable