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

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將僅包含行的連續(xù)文本文件解析為熊貓數(shù)據(jù)框

將僅包含行的連續(xù)文本文件解析為熊貓數(shù)據(jù)框

慕碼人2483693 2022-12-27 16:50:00
我有一個包含重復(fù)行的文本文件,我想轉(zhuǎn)換成一個數(shù)據(jù)框。10/21/2019abcdef100.0010/22/2019ghijk120.00有一個明顯的模式,我希望數(shù)據(jù)框看起來像這樣:Data       | Description | Amount10/21/2019 | abcdef      | 100.0010/22/2019 | ghijk       | 120.00這是怎么做到的?
查看完整描述

3 回答

?
幕布斯7119047

TA貢獻(xiàn)1794條經(jīng)驗 獲得超8個贊

一些正則表達(dá)式來提取細(xì)節(jié),然后向前填充前兩列并刪除空值


pattern = r"(?P<Date>\d{2}/\d{2}/\d{4})|(?P<Description>[a-z]+)|(?P<Amount>\d{1,}\.00)"


res = (df1.text.str.extract(pattern)

       .assign(Date = lambda x: x.Date.ffill(),

               Description = lambda x: x.Description.ffill()

              )

       .dropna(how='any')

      )


res



     Date   Description Amount

2   10/21/2019  abcdef  100.00

5   10/22/2019  ghijk   120.00

如果你不關(guān)心正則表達(dá)式,并且格式是不變的,那么我們可以用 numpy 重塑數(shù)據(jù)并創(chuàng)建一個新的數(shù)據(jù)框。


#reshape the data

#thanks to @Chester 

#removes unnecessary computation

res = np.reshape(df1.to_numpy(),(-1,3))



#create new dataframe

pd.DataFrame(res,columns=['Date','Description','Amount'])


       Date Description Amount

0   10/21/2019  abcdef  100.00

1   10/22/2019  ghijk   120.00


查看完整回答
反對 回復(fù) 2022-12-27
?
小怪獸愛吃肉

TA貢獻(xiàn)1852條經(jīng)驗 獲得超1個贊

將原始數(shù)據(jù)從文件讀取到 aSeries并轉(zhuǎn)換為PandasArray以簡化以后對索引的處理:

raw_data = pd.read_csv("path\to\a\data\file.txt", names=['raw_data'], squeeze=True).array

創(chuàng)建一個DataFrame使用切片:

df = pd.DataFrame(data={'Data': raw_data[::3], 'Description': raw_data[1::3], 'Amount': raw_data[2::3]})

只需 2 個簡單的步驟,無需正則表達(dá)式和不必要的轉(zhuǎn)換。簡短高效。


查看完整回答
反對 回復(fù) 2022-12-27
?
12345678_0001

TA貢獻(xiàn)1802條經(jīng)驗 獲得超5個贊

如果您的字符串具有您提到的確切模式,則可以使用以下代碼


string = '''10/21/2019

abcdef

100.00

10/22/2019

ghijk

120.00'''


token_list = string.split()


Data = token_list[0::3]

Description = token_list[1::3]

Amount = token_list[2::3]


Aggregate = list(zip(Data, Description, Amount))

df = pd.DataFrame(Aggregate, columns = ['Data ', 'Description', 'Amount'])


查看完整回答
反對 回復(fù) 2022-12-27
  • 3 回答
  • 0 關(guān)注
  • 131 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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