[英]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.