我有一个csv文件,其中包含以下格式的数据。
Layer time BSs Temp Message
57986 2:52:46 87 None CMSG
20729 0:23:02 82 None BMSG
20729 0:44:17 81 None AMSG
20729 0:23:02 82 None BMSG
20729 0:44:17 81 None AMSG
我将csv文件读入pandas数据框,如下所示。
with open(INPUT_FILE) as fin:
df = pd.read_csv(INPUT_FILE,
index_col=["Layer","time"],
usecols=["Layer", "time", "BSs",,"Message"],
header=0,
#names=["Layer", "time", "BSs", ,"Message"])
gb = df.groupby(['Layer'])
for k in gb:
print('key = {}'.format(k))
我收到错误
KeyError: 'Layer'
另外,我想从上面的数据框中删除重复的行。
df = df.drop_duplicates()
似乎没有正确执行。由于某种原因,它正在删除太多行。
答案 0 :(得分:1)
由于Layer
位于索引中,因此它不是要分组的可用列。您必须先重置索引。
df = pd.read_csv(INPUT_FILE,
usecols=["Layer", "relative_time", "BSs", "Vge","Message"],
header=0).drop_duplicates()
gb = df.groupby('Layer')
for k in gb:
print('key = {}'.format(k))
key = (20729, Layer relative_time Ht BSs Vge Temp Message
1 20729 0:23:02 45.06m 82 11.6 None BMSG
2 20729 0:44:17 45.06m 81 11.6 None AMSG)
key = (57986, Layer relative_time Ht BSs Vge Temp Message
0 57986 2:52:46 0.00m 87 15.4 None CMSG)