Python 熊猫打印出每个数据帧单元';s相应的索引

Python 熊猫打印出每个数据帧单元';s相应的索引,python,dataframe,Python,Dataframe,我有一个任务要做,就是将数据帧转换成这种格式 转换成这种格式 基本上遍历数据帧中的每个单元格,并返回其对应的第一列(即store_id)和包含层次结构的前3行 我尝试了iloc或loc上的循环,但有点困惑,没有看到太多与我类似的帖子 谢谢所有愿意帮忙的人 我对您在问题中描述的问题使用的修复方法: for index, row in df.iterrows(): value=(index,row["Column Name"])[1] 当您迭代数据帧时,至少使用iterrows()时,

我有一个任务要做,就是将数据帧转换成这种格式

转换成这种格式

基本上遍历数据帧中的每个单元格,并返回其对应的第一列(即store_id)和包含层次结构的前3行

我尝试了iloc或loc上的循环,但有点困惑,没有看到太多与我类似的帖子


谢谢所有愿意帮忙的人

我对您在问题中描述的问题使用的修复方法:

for index, row in df.iterrows():
    value=(index,row["Column Name"])[1]
当您迭代数据帧时,至少使用iterrows()时,它会返回一个元组。使用括号外的[1]选择元组中的第二项

注意:遍历数据帧很慢,而且几乎总是有办法绕过它。然而,如果你只有几行,并且不希望它长得太多,那就试试看吧。我发现它比各种命令更直观


祝你好运

请你发文本/代码,而不是图片好吗?这将使每个试图给出答案的人都更加容易…可以,第一次在这里提出问题,感谢Ethanks Tyler提供的答案,我读了一些关于iterrows()运行时问题的帖子,什么是更有效的解决方法?TBH,我只遇到过小于1000行的用例,所以我只是用iterrows来做清洁,如果需要的话,把它放回df中。我知道pandas具有与SQL相同的功能,因此如果您了解SQL,您可以找到pandas的翻译,但我从未使用过它们。在您的情况下,您可能需要使用df.melt()来取消数据帧的IVOT。这似乎是您的用例所需要的。
   store id   category   level     type  number
0      8445  category1  level1    Shelf       3
1      8448  category1  level1  Pallets       6
2      8445  category1  level2   Tables       4
3      8448  category1  level3    Shelf      12
4      8445  category1  level3    Shelf      12
for index, row in df.iterrows():
    value=(index,row["Column Name"])[1]