python - 使用 pandas 转换 DataFrame
问题描述
我会使用 python pandas 转换我的 DataFrame :
l1=['andre','Marc']
l2=[5,12]
l3=[3,64]
dfWeeks=pd.DataFrame(list(zip(l1,l2,l3)), columns=['Name','22-2019','23-2019'])
dfWeeks
它看起来像这样:
Name 22-2019 23-2019
andre 5 3
Marc 12 64
我想改造它并拥有:
Name Number Dates
andre 5 22-2019
andre 3 23-2019
Marc 12 22-2019
Marc 64 23-2019
我已经尝试过 pivot talbe 或 group by,但我无法做到。
提前致谢。
解决方案
尝试使用pd.melt()
,它更容易:
df.melt('Name',var_name='Dates',value_name='Number')
Name Dates Number
0 andre 22-2019 5
1 Marc 22-2019 12
2 andre 23-2019 3
3 Marc 23-2019 64
或者:
m=df.set_index('Name').stack().reset_index()
m.columns=['Name','Date','Number']
print(m)
Name Date Number
0 andre 22-2019 5
1 andre 23-2019 3
2 Marc 22-2019 12
3 Marc 23-2019 64
推荐阅读
- c++ - 在 C++ 中访问和插入地图(嵌套地图)
- c - 在c中切片数组或结构的函数
- r - 使用 fitdistplus 拟合分布导致 charToDate(x) 出现错误
- python - 如何从每个循环中引用的列表中生成非重复值?
- amazon-web-services - 尝试使用 aws-amplify 从 s3 存储桶调用 appsync 时出现错误 401
- javascript - 如何使用 ChartJS 自动重新调整日志图表的 y 轴?
- python - 如何将这个多维列表重塑为二维数组?
- sql - 为nodejs访问JSON中的元素
- javascript - 如何将动态输入值添加到本地状态以进行检索
- c++ - 同时从服务器发送和接收