我有一个不寻常的数据集给我带来了麻烦。它只是一个像这样的txt文件,有很多这种格式的记录,只是在页面上重复相同的格式。我不能更具体 - 这是一个角色的编码测试,我会诚实地说我得到了帮助,所以我不会得到它,但这真的让我烦恼!
开始:foo NUM:stringwithnumbers-10000098888 DTTIME:20181101Z(在这里想象一个正确的日期戳) 开始时间:20180111 描述:做事 结束:fooend
到目前为止我的代码:
import pandas as pd
stuff = pd.read_csv('thing.ical', sep=':', header=None, index_col=None, skiprows=6)
stuff.columns = ['cols', 'vals']
stuff['index_col'] = stuff.index
stuff = stuff.pivot( index=None, columns='cols')
print(stuff.head())
vals \
cols BEGIN DTSTAMP DTSTART;VALUE=DATE END SUMMARY
0 foo None None None None
1 None None None None None
2 None stringwithnumbers-10000098888 None None None
3 None None 20180111 None None
4 None None None None Doing things
这在我的透视 df 中给了我很多无值,这是我不想要的。我对数据透视很陌生,我不明白发生了什么?
最佳答案
我认为你需要cumcount
对于新索引
的计数器
。也可以在 read_csv
中使用参数 names
,因此稍后无需分配列表:
df = pd.read_csv('thing.ical', sep=":", names=['cols', 'vals'], skiprows=6)
print (df)
df = pd.pivot(index=df.groupby('cols').cumcount(),
columns=df['cols'],
values=df['vals'])
关于python - Pandas 枢轴给了我很多 'none' 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48424673/