簡體   English   中英

如何將 Pandas DataFrame 導出到 CSV 文件中

[英]How to export Pandas DataFrame into CSV file

如何將 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, 116000],[104, 114000],[105, 111000],[106, 105000],[107, 99000],[108, 92000],[109, 84000],[110, 77000],[111, 69000],[112, 62000],[113, 56000],[114, 52000],[115, 48000],[116, 46000],[117, 45000],[118, 46000],[119, 47000],[120, 48000],[121, 50000],[122, 52000],[123, 54000],[124, 55000],[125, 54000],[126, 53000],[127, 51000],[128, 47000],[129, 43000],[130, 38000]]
},{                 
name: 'tea',
data: [[90, 47000],[91, 53000],[92, 57000],[93, 59000],[94, 59000],[95, 58000],[96, 55000],[97, 53000],[98, 51000],[99, 51000],[100, 53000],[101, 58000],[102, 64000],[103, 72000],[104, 80000],[105, 89000],[106, 97000],[107, 102000],[108, 105000],[109, 105000],[110, 101000],[111, 95000],[112, 87000],[113, 77000],[114, 67000],[115, 57000],[116, 50000],[117, 46000],[118, 45000],[119, 47000],[120, 53000],[121, 61000],[122, 70000],[123, 81000],[124, 90000],[125, 98000],[126, 103000],[127, 105000],[128, 104000],[129, 100000],[130, 94000]]
},{                 
name: 'Tonic',
data: [[90, 63000],[91, 68000],[92, 73000],[93, 78000],[94, 82000],[95, 85000],[96, 86000],[97, 86000],[98, 84000],[99, 81000],[100, 77000],[101, 71000],[102, 66000],[103, 60000],[104, 54000],[105, 50000],[106, 46000],[107, 44000],[108, 44000],[109, 46000],[110, 49000],[111, 54000],[112, 60000],[113, 67000],[114, 74000],[115, 81000],[116, 88000],[117, 94000],[118, 99000],[119, 102000],[120, 104000],[121, 104000],[122, 102000],[123, 99000],[124, 95000],[125, 91000],[126, 86000],[127, 81000],[128, 77000],[129, 74000],[130, 72000]]
}]

這是我的代碼:

newdata = eval(string)

df = pd.DataFrame(newdata)

df.to_csv('filename.csv', index=False)

print(df)

這是來自to_csv調用的所需 output :

所需的輸出 CSV

假設series是字典或 json object。 我們可以使用 pd.json_normalize 進行初始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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM