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

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

分配給 DataFrame 不起作用但 dtypes 已更改

分配給 DataFrame 不起作用但 dtypes 已更改

慕妹3146593 2021-12-17 15:58:26
分配給 DataFrame 不起作用,但 dtypes 已更改。數(shù)據(jù)科學(xué)的新手,我想將 分配target_frame給empty_frame,但它在再次分配之前不起作用。并且在分配過(guò)程中,dtypesofempty_frame已從int32變?yōu)閒loat64并最終設(shè)置為int64。我嘗試將我的模型簡(jiǎn)化為下面的代碼,它們有同樣的問(wèn)題。import pandas as pdimport numpy as npdataset = [[[i for i in range(5)], ] for i in range(5)]dataset = pd.DataFrame(dataset, columns=['test'])  empty_numpy = np.arange(25).reshape(5, 5)empty_numpy.fill(np.nan)# Solution 1: change the below code into 'empty_frame = pd.DataFrame(empty_numpy)' then everything will be fineempty_frame = pd.DataFrame(empty_numpy, columns=[str(i) for i in range(5)])series = dataset['test']target_frame = pd.DataFrame(list(series))# Solution 2: run `empty_frame[:] = target_frame` twice, work fine to me.# ==================================================================# First try.empty_frame[:] = target_frameprint("="*40)print(f"Data types of empty_frame: {empty_frame.dtypes}")print("="*40)print("Result of first try: ")print(empty_frame)print("="*40)# Second try.empty_frame[:] = target_frameprint(f"Data types of empty_frame: {empty_frame.dtypes}")print("="*40)print("Result of second try: ")print(empty_frame)print("="*40)# ====================================================================但是當(dāng)我第一次嘗試時(shí)它不起作用。這個(gè)問(wèn)題有兩種解決方案,但我不知道為什么:正如我在我的代碼中展示的那樣,在一次運(yùn)行中嘗試兩次分配。創(chuàng)建時(shí)刪除列的名稱empty_frame。我想弄清楚兩件事:為什么empty_frame的數(shù)據(jù)類型改變了。為什么我的代碼中顯示的解決方案可以解決這個(gè)分配問(wèn)題。
查看完整描述

1 回答

?
絕地?zé)o雙

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

如果我正確理解你的問(wèn)題,那么當(dāng)你創(chuàng)建 empty_numpy 矩陣時(shí)你的問(wèn)題就開始了。我最喜歡的解決方案是使用empty_numpy = np.empty([5,5])代替(這里的默認(rèn) dtypes 是 float64)。那么“第一次嘗試的結(jié)果:”是正確的。它的意思是:


import pandas as pd

import numpy as np


dataset = [[[i for i in range(5)],] for i in range(5)]

dataset = pd.DataFrame(dataset, columns=['test'])  


empty_numpy = np.empty([5,5])

# here you may add empty_numpy.fill(np.nan) but it's not necessary,result is the same


empty_frame = pd.DataFrame(empty_numpy, columns=[str(i) for i in range(5)])


series = dataset['test']

target_frame = pd.DataFrame(list(series))


# following assignment is correct then

empty_frame[:] = target_frame

print('='*40)

print(f'Data types of empty_frame: {empty_frame.dtypes}')

print('='*40)


print("Result of first try: ")

print(empty_frame)

print("="*40)

或者只是將 dtype 屬性添加到您的 np.arrange 調(diào)用中,就像這樣:


empty_numpy = np.arange(25, dtype=float).reshape(5, 5)

然后它也可以工作(但有點(diǎn)無(wú)聊;o)。


查看完整回答
反對(duì) 回復(fù) 2021-12-17
  • 1 回答
  • 0 關(guān)注
  • 195 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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