Python 面板数据
Python Panel Data
我平时用的是Stata,但现在想用Python,拼命想创建一个pandel数据集。我试过 pandas.panel 但没有成功。
我有以下数据集:
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排序的。我该怎么做,还是我在 pandas 中缺少一些不错的时间序列函数?
抱歉这个问题。我确定这个问题已经在某个地方得到了解答,但我现在已经尝试了几个小时但无法弄清楚。
给定输入数据:
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" pandas DataFrame:
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
输出
其他参考资料:Wickham, H. Tidy Data,统计软件杂志,10, 59, 2014。
我平时用的是Stata,但现在想用Python,拼命想创建一个pandel数据集。我试过 pandas.panel 但没有成功。 我有以下数据集:
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排序的。我该怎么做,还是我在 pandas 中缺少一些不错的时间序列函数?
抱歉这个问题。我确定这个问题已经在某个地方得到了解答,但我现在已经尝试了几个小时但无法弄清楚。
给定输入数据:
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" pandas DataFrame:
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
输出
其他参考资料:Wickham, H. Tidy Data,统计软件杂志,10, 59, 2014。