首页 > 解决方案 > Python 单维和多维列表在 CSV 中显示为完整记录

问题描述

我想将此数据存储到 csv 中。我想要的输出如下图所示。

CompanyName  = [Breakout, Outfitters, Limelight, Stoneage, Couger] 
CompanyReview = [4,5,2,3,5]
CustomerNames = [[Ashar,Zeshan,Sohaib,Hanzllah],[Shabaz, Kashif,Yqoob,Shani], 
                [Wahab,Wassay,Ramzan,Nauman,Rahat],[], 
                [Rafeel,Muneeb,Razi,Huzaifa,Shahzaib,Haris]]
CustimerStars =     [[2,3,2,5],[5,5,4,4],[1,2,3,4,5],[],[2,2,3,4,5,5]

在此处输入图像描述

标签: pythonlistcsv

解决方案


假设您修复了数据中的拼写和引用错误,您可以执行以下操作:

通过将列表压缩在一起创建数据框,然后将非嵌套元素设置为索引,并使用pd.Series.explode

CompanyName  = ['Breakout', 'Outfitters', 'Limelight', 'Stoneage', 'Couger'] 
CompanyReview = [4,5,2,3,5]
CustomerNames = [['Ashar','Zeshan','Sohaib','Hanzllah'],['Shabaz', 'Kashif','Yqoob','Shani'], 
                ['Wahab','Wassay','Ramzan','Nauman','Rahat'],[], 
                ['Rafeel','Muneeb','Razi','Huzaifa','Shahzaib','Haris']]
CustomerStars =     [[2,3,2,5],[5,5,4,4],[1,2,3,4,5],[],[2,2,3,4,5,5]]


df = pd.DataFrame(list(zip(CompanyName,
                      CompanyReview,
                      CustomerNames,
                      CustomerStars)),
             columns=['CompanyName',
                      'CompanyReview',
                      'CustomerNames',
                      'CustomerStars'])

df.set_index(['CompanyName','CompanyReview']).apply(pd.Series.explode).reset_index()

输出

   CompanyName  CompanyReview    CustomerNames    CustomerStars
0     Breakout              4         Ashar             2
1     Breakout              4        Zeshan             3
2     Breakout              4        Sohaib             2
3     Breakout              4      Hanzllah             5
4   Outfitters              5        Shabaz             5
5   Outfitters              5        Kashif             5
6   Outfitters              5         Yqoob             4
7   Outfitters              5         Shani             4
8    Limelight              2         Wahab             1
9    Limelight              2        Wassay             2
10   Limelight              2        Ramzan             3
11   Limelight              2        Nauman             4
12   Limelight              2         Rahat             5
13    Stoneage              3           NaN           NaN
14      Couger              5        Rafeel             2
15      Couger              5        Muneeb             2
16      Couger              5          Razi             3
17      Couger              5       Huzaifa             4
18      Couger              5      Shahzaib             5
19      Couger              5         Haris             5

推荐阅读