我有以下Python数据帧:
id| country | 2016 | 2017 | 2018
--+----------+------+------+------
0 | saudi | A | null | B
1 | china | C | A | B
2 | pakistan | null | null | C
我想:
id| country | year | value
--+----------+------+------
0 | saudi | 2016 | A
1 | saudi | 2018 | B
2 | china | 2016 | C
3 | china | 2017 | A
4 | china | 2018 | B
5 | pakistan | 2018 | C
是的,你也可以使用unstackdf2=df.unstack()
然后df2.reset_index()
您可以使用df.melt
df.melt(['id','country'], df.columns[2:]).dropna()
id country variable value
0 0 saudi 2016 A
6 0 saudi 2018 B
1 1 china 2016 C
4 1 china 2017 A
7 1 china 2018 B
8 2 pakistan 2018 C
如果需要,只需添加。对值('id')进行排序
或者可以使用
堆栈
df.set_index(['id','country']).stack().to_frame()
然后
.reset_index()
如果你愿意
看起来使用
堆栈
会更有效率:
melt: 11.3 ms ± 798 µs per loop (mean ± std. dev. of 3 runs, 1000 loops each)
stack: 9.18 ms ± 594 µs per loop (mean ± std. dev. of 3 runs, 1000 loops each)
我尝试在中使用,但它将聚合函数作为参数,我不想提供。 我怎样才能做到这一点。
我是数据科学的初学者,我正在尝试使用Pandas来旋转此数据框架: 所以它变成这样:(标签应该变成列,文件路径变成行。) “标签”列是一组或一类文件路径。我想把它转换成这样一种方式,它适合这个函数:tf。Keras.preprocessing.image.flow_from_dataframe 提前感谢所有帮助我的人。
我有一个这样的数据框, 因为传感器的数量是可变的,所以我决定把它们写成行,比如, 我想知道是否有任何方便的方法将df1转换为df2? 附录:为方便起见,df1代码,
我有以下数据帧: 我想这样。 堆叠/卸载似乎不工作。
我有一张如下的桌子: 如何将其转换为:
问题内容: 考虑下面的示例,其中有一个包含人员记录的 Person 表和一个包含链接到人员的可选属性的 PersonAttribute 表: Table: Person Table PersonAttribute 我将如何编写一个查询,使所有具有属性的人都像列一样返回?我需要的结果集是: 因此,从本质上讲,我需要编写一个查询,该查询将获取所有带有所有唯一属性键的人记录,这些键被转换为具有每个人记录