如何解决如何将Pandas DataFrame导出到CSV文件
如何将Pandas DataFrame导出到CSV文件并从下面的字符串读取它?
series: [{
name: 'Water',data: [[90,50000],[91,53000],[92,56000],[93,62000],[94,68000],[95,76000],[96,83000],[97,91000],[98,98000],[99,105000],[100,110000],[101,114000],[102,116000],[103,[104,[105,111000],[106,[107,99000],[108,92000],[109,84000],[110,77000],[111,69000],[112,[113,[114,52000],[115,48000],[116,46000],[117,45000],[118,[119,47000],[120,[121,[122,[123,54000],[124,55000],[125,[126,[127,51000],[128,[129,43000],[130,38000]]
},{
name: 'tea',57000],59000],58000],64000],72000],80000],89000],97000],102000],101000],95000],87000],67000],61000],70000],81000],90000],103000],104000],100000],94000]]
},{
name: 'Tonic',63000],73000],78000],82000],85000],86000],71000],66000],60000],44000],49000],74000],88000],94000],72000]]
}]
这是我的代码:
newdata = eval(string)
df = pd.DataFrame(newdata)
df.to_csv('filename.csv',index=False)
print(df)
这是来自to_csv
呼叫的期望输出:
解决方法
假设series
是字典或json对象。我们可以使用I/O
进行初始pd.json_normalize
,然后使用pd.Crosstab
df = pd.json_normalize(series,record_path="series")\
.explode("data")\
.reset_index(drop=True)
df1 = (
df[["name"]]
.join(pd.DataFrame(df["data"].tolist()))
.rename(columns={0: "Day",1: "Data"})
)
df2 = pd.crosstab(df1.Day,df1.name,df1.Data,aggfunc=lambda x : x)
print(df2)
name Tonic Water tea
Day
90 63000 50000 47000
91 68000 53000 53000
92 73000 56000 57000
93 78000 62000 59000
94 82000 68000 59000
95 85000 76000 58000
96 86000 83000 55000
97 86000 91000 53000
98 84000 98000 51000
99 81000 105000 51000
100 77000 110000 53000
101 71000 114000 58000
102 66000 116000 64000
103 60000 116000 72000
104 54000 114000 80000
105 50000 111000 89000
106 46000 105000 97000
107 44000 99000 102000
108 44000 92000 105000
109 46000 84000 105000
110 49000 77000 101000
111 54000 69000 95000
112 60000 62000 87000
113 67000 56000 77000
114 74000 52000 67000
115 81000 48000 57000
116 88000 46000 50000
117 94000 45000 46000
118 99000 46000 45000
119 102000 47000 47000
120 104000 48000 53000
121 104000 50000 61000
122 102000 52000 70000
123 99000 54000 81000
124 95000 55000 90000
125 91000 54000 98000
126 86000 53000 103000
127 81000 51000 105000
128 77000 47000 104000
129 74000 43000 100000
130 72000 38000 94000
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。