Pandas:不能按索引列分组

2024-04-19 23:25:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个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文件读入熊猫数据框,如下所示。你知道吗

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()

好像不行没错,是的出于某种原因删除了太多的行。你知道吗


Tags: 文件csv数据nonelayermessagedfinput
1条回答
网友
1楼 · 发布于 2024-04-19 23:25:32

由于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)

相关问题 更多 >