python - 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]
解决方案
假设您修复了数据中的拼写和引用错误,您可以执行以下操作:
通过将列表压缩在一起创建数据框,然后将非嵌套元素设置为索引,并使用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
推荐阅读
- google-chrome - 在 chrome 扩展和回调 API 中捕获特定的最终 URL
- xml - XSLT 3.0 - 用数字字符串表示替换数字字符
- arduino - 为什么LM35温度传感器与Arduino上的LDR光传感器结合时输出值不稳定
- asp.net - ASP.NET 验证中继器中的多个复选框列表
- r - 将 dplyr::filter 应用于数据帧列表
- hazelcast - 覆盖散列函数
- c# - ML.Net 显示哪个分数与哪个标签相关的错误
- java - Java 正则表达式如何匹配 _、/ 或 /123?
- bash - 在 git merge 期间,找出当前正在合并的分支
- xamarin.forms - 为什么某些可绑定属性无效?