[英]Convert awkwardly formatted data into a dataframe with pandas python
[英]Loading triplet formatted data in pandas DataFrame
我有以下格式的csv文件:
email Peter peter@example.com
id Peter 23
age John 31
fullname John John Smith
id John 25
即,第一个字段是键名称,第二个字段是索引值,第三个字段是数据值。 我前面没有所有键名的列表。
用此数据创建DataFrame对象的最有效方法是什么?
更新 :该格式允许丢失数据,即,在这种情况下,约翰的电子邮件为NaN。
根据您希望拥有最终数据帧的方式,可以为此使用数据pivot
表:
In [1]: s = """email Peter peter@example.com
...: id Peter 23
...: age John 31
...: fullname John John Smith
...: id John 25"""
In [4]: df = pd.read_fwf(StringIO(s), names=["key", "name", "value"])
In [5]: df
Out[5]:
key name value
0 email Peter peter@example.com
1 id Peter 23
2 age John 31
3 fullname John John Smith
4 id John 25
In [6]: df.pivot(index='name', columns='key', values='value')
Out[6]:
key age email fullname id
name
John 31 NaN John Smith 25
Peter NaN peter@example.com NaN 23
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.