我有一个我解决不了的问题。当我在数据框中的特定位置添加新行时,新行后的行消失(就像新行踩在旧行上并隐藏/删除它们一样)。我从excel文件中获取dataframe,也使用pandas。
if (first_table.iloc[first_table_row_number, 1:32].sum().all() == True):
my_row = first_table.iloc[first_table_row_num, 0:32]
final_table.iloc[final_table_row_num + 91] = my_row
final_table.loc[(96+a):(96+a)] = [2023, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
final_table.loc[(97+a):(97+a)] = ['I', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
final_table.loc[(98+a):(98+a)] = ['II', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
final_table.loc[(99+a):(99+a)] = ['III', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
final_table.loc[(100+a):(100+a)] = ['IV', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
first_table -我从中获取值的表final_table -我想把first_table的值放在其中的表final_table_row_num -它是索引行,我计算其他行应该在哪里
first_table_row_number -我从中获取值到final_table的索引行。正如您所看到的,我只需要在第一列中添加2023,然后在第一列中添加新行'I',以此类推。其他列应该保持空,我将从first_table添加一些值。
所以我想添加5个新行到final_table,但是当我这样做的时候,这5个新行删除了现有的行…有什么解决办法吗?我需要对行下标做点什么吗?
你可以切片并使用concat来得到你想要的。
的例子:
line = pd.DataFrame([2023, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
df2 = concat([df.iloc[:96], line, df.iloc[96:]]).reset_index(drop=True)
如果您想在第1行和第2行之间添加行,则添加它们之间的索引- 1.5。Df.loc [1.5] = ....