我有一個資料框,我將其轉換為:
df=df.T.reset_index()
index | 2020-01-01 | 2020-02-01 |....| 2021-09-01
book | 0.2 | 0.3 |.....
fruit | 0.1 | 0.11 |.....
現在,我想繪制一個折線圖,該圖顯示每個產品(“指數”),逐月顯示具有這些相應值的線。但是,當我轉置 df 時,它對 df.info() 給我的索引和列做了一些奇怪的事情:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 14 entries, 0 to 13
Columns: 101 entries, index to 18.0
dtypes: float64(100), object(1)
如何塑造 df 以進行繪圖?
uj5u.com熱心網友回復:
- 你在下面描述,它有效
- 如果這不起作用,請用真實資料更新問題
df = pd.DataFrame(index=pd.date_range("1-jan-2021", freq="MS", periods=9), data=np.random.uniform(1,5,(9,2)), columns=["book","fruit"])
dfp = df.T.reset_index()
px.line(dfp.set_index("index").T).show()
dfp.info()
uj5u.com熱心網友回復:
import pandas as pd
from datetime import datetime
import numpy as np
import plotly.graph_objects as go
df = pd.DataFrame(data={'date': list(pd.date_range(datetime(2021, 1, 1), datetime(2021, 1, 10))),
'fruit': list(np.arange(1, 11, 1)),
'book': list(np.arange(21, 31))})
df=df.T.reset_index()
df.columns = df.loc[0]
df = df.loc[1:]
fig = go.Figure()
for index, row in df.iterrows():
fig.add_trace(go.Scatter(x=df.columns[1:], y=row[1:], mode='lines markers', name=row[0]))
fig.update_layout(title = 'Line plot of items', xaxis_title='Time', yaxis_title='Sales')
fig.show()
Input Dataframe:
0 date 2021-01-01 00:00:00 ... 2021-01-09 00:00:00 2021-01-10 00:00:00
1 fruit 1 ... 9 10
2 book 21 ... 29 30
Figure:

轉載請註明出處,本文鏈接:https://www.uj5u.com/net/311127.html
下一篇:合并嵌套級別的JSON
