Python面板数据
问题描述:
我通常使用Stata,但现在想使用Python并拼命尝试创建pandel数据集。我尝试了pandas.panel,但没有得到它的工作。 我有以下数据集:Python面板数据
date id1 id2
2000 100 50
2001 101 48
现在我想使它看起来像这样:
date id variable
2000 1 100
2000 2 101
2001 1 50
2001 2 48
接下来,我要确定一个时间和id变量运行一些面板功能。我也试过dataframe.stack(),但是这不会根据id进行排序。我该如何做,或者我在这里错过了熊猫的一些很好的时间序列功能?
对不起。我确信这个问题已经在某个地方得到解答,但我现在尝试了几个小时,但无法弄清楚。
答
给定的输入数据:
data = [
{"date": 2000, "id1": 100, "id2": 50},
{"date": 2001, "id1": 101, "id2": 48}
]
或
data = {
"date": [2000, 2001],
"id1": [100, 101],
"id2": [50, 48],
}
使得
df = pd.DataFrame(data)
df
“melt” 熊猫数据帧:
melted = pd.melt(df, id_vars="date", var_name="id", value_name="variable")
# Optional amendments
melted["id"] = melted["id"].str.replace("id", "")
melted.sort_values(by="date", inplace=True)
melted.reset_index(inplace=True, drop=True)
melted
melted
输出
序号:韦翰,H. Tidy Data,杂志统计软件,10,59,2014年
我已想出这个问题是我没有该列的ID,因为id1和i2列用不同的字符串命名。 但是,如何在不扭曲数据集的情况下为每列分配一个ID? –
我相信变量列中的某些值不正确。 – pylang