【发布时间】:2020-07-18 04:04:26
【问题描述】:
我有一个数据框,其中所有单元格都是字符串。我想遍历一个配对列表并连接数据框的行。
例如,我有一个如下所示的数据框:
df=[['7','4','5','',''],["","","",'7','4'],['9','4','7','8','4'],["","","",'7','5'],['4','8','5','4','6'],['4','9','41','74','20'],['4','Super','yes','0','9']]
df=pd.DataFrame(df)
df.astype('str')
print(df)
0 1 2 3 4
7 4 5
7 4
9 4 7 8 4
7 5
4 8 5 4 6
4 9 41 74 20
我想遍历下面的配对列表,其中第一个元素是开始和第二个结束。
list_index=[[1,3],[4,5]]
这是我的审判。我试图将列表更改为范围,以便我可以访问每个缩减的元素并遍历它们,但没有运气抛出TypeError: 'list' object cannot be interpreted as an integer。
for row,index in df.iterrows():
for i in range(len(list_index)):
for j in range(list_index[i]):
df[row,:] = df[row,:] + row
最后,对于我上面的索引的开始和结束,我希望数据最终数据框看起来像这样:
0 1 2 3 4
7 4 5
9 4 7 787 445
44 89 541 474 620
我不确定如何在 python 中循环遍历列表的配对元素。谁能帮我解决这个问题?
【问题讨论】:
-
嗨,我不明白你的输出。所以你想从第 1 行第 3 列
[1,3]到第 4 行第 5 列[4,5]会发生什么?第 2 行中原始 df 的空单元格在哪里?[2,0:3] -
我认为您想要的输出存在缺陷。特别是,我觉得应该是9、4、7、787、445。如果我错了,请纠正我。
-
@Björn B,感谢您的回复。不,列根本不受影响。我想连接从 1 到 3 和 4 到 5 的数据框行。列根本不受影响,我想连接所有列的 1 和 3 以及 4 和 5 之间的行。
-
@Ramin Melikov 感谢您发现这一点。我现在已经编辑了。
标签: python list dataframe for-loop concatenation