繁体   English   中英

将Column1值转换为header,将column2转换为pandas中的值

[英]Converting Column1 value as header and column2 as its value in pandas

我正在尝试将列1转换为数据框的标题名称和列2值作为其各自的值:

例如:

import pandas as pd
df = pd.DataFrame([(10,'foo'), (20,'bar')])

结果数据框将具有:

   0    1
0  10  foo
1  20  bar

预期数据框:

 foo bar
0 10 20

我是Python的新手并在这方面寻求帮助。 谢谢

使用zip和序列解包:

L = [(10, 'foo'), (20, 'bar')]
*data, headers = zip(*L)

df = pd.DataFrame(data, columns=headers)

print(df)

   foo  bar
0   10   20

如果您有预先存在的数据帧df_input ,则可以重写您的第一步:

*data, headers = zip(*df_input.values)

采用:

L = [(10,'foo'), (20,'bar')]
df = pd.DataFrame([{j:i for i, j in L}])
print (df)
   bar  foo
0   20   10

因为你有很多数据点我会假设像下面那样假设bar总是在foo之后

L = [(10, 'foo'), (20, 'bar'),(30,'foo'),(40,'bar'),(5,'foo'),(5,'bar')]
df = pd.DataFrame(L)

然后你可以这样做:

df.assign(idx = df[1].eq(df.iloc[0,1]).cumsum()).pivot('idx',1,0)

1    bar  foo
idx          
1     20   10
2     40   30
3      5    5

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM