如何为 Pandas 数据框中的每个数据点创建一个新行。例如:
id |2016 |2015 |2014
ID1|1|2|3
ID2|4|5|6
ID3|7|8|9
转换成:
idnum| Date |Datapoint_Value
ID1|2014|3
ID2|2014|6
ID3|2014|9
ID1|2015|2
ID2|2015|5
ID3|2015|8
ID1|2016|1
ID2|2016|4
ID3|2016|7
我正在使用 pandas 从 excel 导入数据,并希望将其存储在一个空数据框中,然后写入 csv 文件。
import pandas as pd
raw_data = pd.read_excel(open('C:\\Python_Loops\\New_doc.xlsx', 'rb'), sheetname='Advances & Redraw') # Raw data
twisted_df = pd.DataFrame()
最佳答案
使用melt
.
twisted_df = pd.melt(raw_data, id_vars='id',
var_name='Date', value_name='Datapoint_Value')
twisted_df.head()
# id Date Datapoint_Value
# 0 ID1 2016 1
# 1 ID2 2016 4
# 2 ID3 2016 7
# 3 ID1 2015 2
# 4 ID2 2015 5
然后,您可以将其导出为 CSV 文件。
twisted_df.to_csv('twisted_df.csv')
关于excel - 为每个数据点创建新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41294819/