1
私はJupyterノートブックを使用しています(これが適切かどうかはわかりません)、なぜPandasがSettingWithCopyWarningを投げているのですか?ここでパンダ設定WimCopyWarningのみ機能でスローされました
私のコードの最初のバージョンである:
def read_in_yearly_data(file_name):
print('\t%s' % file_name)
df = pd.read_csv('../' + file_name + '.csv', header=None)
# Drop the first 4 columns, and set names of the remaining 4 columns
for i in range(4):
del df[i]
df.columns = ['Part_Name', 'Date', 'Description', 'Units']
return df
yearly_data = []
for year in ['09', '10', '11']:
yearly_data.append(read_in_yearly_data('20' + year + ' data'))
all_data = pd.concat(yearly_data, axis=0, join='outer')
parts_to_exclude = misc.PART_NAMES
all_data = all_data.query('Part not in @parts_to_exclude')
all_data['Units'] = all_data['Units'].apply(lambda x: hf.to_int(x))
そして第二版(関数内のコードをラップ):
def read_in_yearly_data(file_name):
print('\t%s' % file_name)
df = pd.read_csv('../' + file_name + '.csv', header=None)
# Drop the first 4 columns, and set names of the remaining 4 columns
for i in range(4):
del df[i]
df.columns = ['Part_Name', 'Date', 'Description', 'Units']
return df
def myfunc():
yearly_data = []
for year in ['09', '10', '11']:
yearly_data.append(read_in_yearly_data('20' + year + ' data'))
all_data = pd.concat(yearly_data, axis=0, join='outer')
parts_to_exclude = misc.PART_NAMES
all_data = all_data.query('Part not in @parts_to_exclude')
all_data['Units'] = all_data['Units'].apply(lambda x: hf.to_int(x))
my_func()
コールhf.to_int(x)
は「単位」と変換を取りますそれは整数になります(ユニットのいくつかは文字列として格納され、 '2000.0'のようにカンマを持っています)。
最初のバージョンのコードでは、 dバージョンがあります。
はしても何も変わらない第二のバージョンでall_data.loc[:, 'Units'] = all_data['Units'].apply(lambda x: hf.to_int(x))
に最後の行を変更し、私は理由を理解するのに苦労しています。