python pandas for循环_python-如何在for循环中在pandas数据框中追加行?

您可能有两个原因在循环中追加行:1.添加到现有df; 2.创建新的df。

要创建一个新的df,我认为它有据可查,您应该将数据创建为列表,然后创建数据框:

cols = ['c1', 'c2', 'c3']

lst = []

for a in range(2):

lst.append([1, 2, 3])

df1 = pd.DataFrame(lst, columns=cols)

df1

Out[3]:

c1 c2 c3

0 1 2 3

1 1 2 3

或者,创建带有索引的数据框,然后添加到其中

cols = ['c1', 'c2', 'c3']

df2 = pd.DataFrame(columns=cols, index=range(2))

for a in range(2):

df2.loc[a].c1 = 4

df2.loc[a].c2 = 5

df2.loc[a].c3 = 6

df2

Out[4]:

c1 c2 c3

0 4 5 6

1 4 5 6

如果要添加到现有数据框,则可以使用上述任一方法,然后将df一起添加(带有或不带有索引):

df3 = df2.append(df1, ignore_index=True)

df3

Out[6]:

c1 c2 c3

0 4 5 6

1 4 5 6

2 1 2 3

3 1 2 3

或者,您也可以创建字典条目的列表,并像上面的答案一样附加这些条目。

lst_dict = []

for a in range(2):

lst_dict.append({'c1':2, 'c2':2, 'c3': 3})

df4 = df1.append(lst_dict)

df4

Out[7]:

c1 c2 c3

0 1 2 3

1 1 2 3

0 2 2 3

1 2 2 3

使用dict(zip(cols,vals)))

lst_dict = []

for a in range(2):

vals = [7, 8, 9]

lst_dict.append(dict(zip(cols, vals)))

df5 = df1.append(lst_dict)

你可能感兴趣的:(python,pandas,for循环)