第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何讀取csv并按組聚合數(shù)據(jù)?

如何讀取csv并按組聚合數(shù)據(jù)?

尚方寶劍之說 2023-08-08 16:52:29
我們有一個(gè) csv 文件,并在下面編寫代碼來進(jìn)行分組并獲取最大值并創(chuàng)建輸出文件。但是,在使用數(shù)據(jù)幀 read_csv 讀取最終輸出文件時(shí),它顯示為空。Input file: Manoj,2020-01-01 01:00:00Manoj,2020-02-01 01:00:00Manoj,2020-03-01 01:00:00Rajesh,2020-01-01 01:00:00Rajesh,2020-05-01 01:00:00Suresh,2020-04-01 01:00:00Final output file:Manoj,2020-03-01 01:00:00Rajesh,2020-05-01 01:00:00Suresh,2020-04-01 01:00:00然后當(dāng)我嘗試使用 df.read_Csv 讀取上面的最終輸出文件時(shí),它顯示數(shù)據(jù)幀為空。import osimport reimport pandas as pdz=open('outfile.csv','w')fin=[]k=open('j.csv','r')for m in k:    d=m.split(',')[0]    if d not in fin:        fin.append(d.strip())for p in fin:    gg=[]    g=re.compile(r'{0}'.format(p))    y=open('j.csv','r')    for b in y:        if re.search(g,b):            gg.append(b)    z.write(gg[-1].strip())    z.write('\n')df = pd.read_csv("outfile.csv", delimiter=',', names=['Col1','Col2'], header=0)print(df)final output: Empty DataFrame , Index: []有什么我錯(cuò)過的嗎,請(qǐng)大家推薦一下...
查看完整描述

2 回答

?
慕婉清6462132

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超2個(gè)贊

  • 沒有必要使用for-loop來處理文件。數(shù)據(jù)聚合更容易完成pandas

  • 您的顯示沒有標(biāo)題,因此請(qǐng)使用、 、csv讀取文件,并使用正確格式化日期時(shí)間列。?pandas.read_csvheader=Noneparse_dates

    • 具有日期時(shí)間的列顯示在列索引 1 處,因此parse_dates=[1]

    • 這假設(shè)數(shù)據(jù)從文件中的第 0 行開始并且沒有標(biāo)題,如 OP 中所示。

  • 為列創(chuàng)建標(biāo)題

  • 根據(jù)評(píng)論,可以使用訪問器date訪問的組件。'datetime'.dt

  • .groupbyname并聚合.max()

import pandas as pd


# read the file j.csv

df = pd.read_csv('j.csv', header=None, parse_dates=[1])


# add headers

df.columns = ['name', 'datetime']


# select only the date component of datetime

df.datetime = df.datetime.dt.date


# display(df)

? ? ?name? ? datetime

0? ?Manoj? 2020-01-01

1? ?Manoj? 2020-02-01

2? ?Manoj? 2020-03-01

3? Rajesh? 2020-01-01

4? Rajesh? 2020-05-01

5? Suresh? 2020-04-01


# groupby

dfg = df.groupby('name')['datetime'].max().reset_index()


# display(dfg)

? ? ?name? ? datetime

0? ?Manoj? 2020-03-01

1? Rajesh? 2020-05-01

2? Suresh? 2020-04-01


# save the file. If the headers aren't wanted, use `header=False`

dfg.to_csv('outfile.csv', index=False)


查看完整回答
反對(duì) 回復(fù) 2023-08-08
?
鳳凰求蠱

TA貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超4個(gè)贊

創(chuàng)建數(shù)據(jù)框


import pandas as pd

df=pd.DataFrame(zip(

    ['Manoj','Manoj','Manoj','Rajesh','Rajesh','Suresh'],

    ['2020-01-01','2020-02-01','2020-03-01','2020-01-01','2020-05-01','2020-04-01'],

    ['01:00:00','01:00:00','01:00:00','01:00:00','01:00:00','01:00:00']),

    columns=['name','date','time'])

將日期和時(shí)間從字符串轉(zhuǎn)換為日期和時(shí)間對(duì)象


df['date']=pd.to_datetime(df['date'], infer_datetime_format=True).dt.date

df['time']=pd.to_datetime(df['time'],format='%H:%M:%S').dt.time

采取分組方式


out=df.groupby(by=['name','time']).max().reset_index()

您可以保存并再次加載


out.to_csv('out.csv',index=False)

df1=pd.read_csv('out.csv')

結(jié)果


    name      time        date

0   Manoj  01:00:00  2020-03-01

1  Rajesh  01:00:00  2020-05-01

2  Suresh  01:00:00  2020-04-01

抱歉,我為日期和時(shí)間創(chuàng)建了兩個(gè)單獨(dú)的列,但我希望您能理解


查看完整回答
反對(duì) 回復(fù) 2023-08-08
  • 2 回答
  • 0 關(guān)注
  • 168 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)