Python-pandas将一些列转换为行

我的数据集具有n个日期的位置信息。问题在于每个日期实际上是一个不同的列标题。例如,CSV看起来像

location    name    Jan-2010    Feb-2010    March-2010

A "test" 12 20 30

B "foo" 18 20 25

我想要的是它看起来像

location    name    Date        Value

A "test" Jan-2010 12

A "test" Feb-2010 20

A "test" March-2010 30

B "foo" Jan-2010 18

B "foo" Feb-2010 20

B "foo" March-2010 25

问题是我不知道列中有多少个日期(尽管我知道它们总是以名字开头)

回答:

从v0.20开始,melt是一阶函数,你现在可以使用

df.melt(id_vars=["location", "name"], 

var_name="Date",

value_name="Value")

location name Date Value

0 A "test" Jan-2010 12

1 B "foo" Jan-2010 18

2 A "test" Feb-2010 20

3 B "foo" Feb-2010 20

4 A "test" March-2010 30

5 B "foo" March-2010 25

以上是 Python-pandas将一些列转换为行 的全部内容, 来源链接: utcz.com/qa/434415.html

回到顶部