0
我有一個df需要基於用戶輸入的值。這將成爲每次運行不同數據的程序的一部分。我遇到的代碼是熊貓集團通過拆分,獲取用戶輸入,將列添加到子集,合併回df
for A, new_df in data.groupby(level=0):
print A
tariff=get_tariff()
this=data.iloc[data.index.get_level_values('A') == A]
#this adds a new column
this['Tariff Added']= this['Price'] * tariff
pd.merge(data, this)
我有兩個級別的索引。我將數據分成適當的級別,然後獲得用戶輸入。這是我無法弄清楚的。我需要每個級別= 0來創建一個新的列。在這段代碼中,這變成了df,level = 0只是合適的值。然後我想將它合併回原來的df(我意識到合併可能不正確,我一次只做這一步)。
當我在終端運行它,我得到這個
data_load.py:35: SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead
See the the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
this['Tariff Added']= this['Price'] * tariff
然後失敗。我不知道爲什麼它說我正在創建一個副本,而我正在使用.iloc聲明一個新的df,並將它合併到原始文件中。
我的一個想法是在開始之前創建'關稅添加'列,但我想在此查看以查看此代碼無法工作的原因。
我一起工作的df是這個
Quantity Price
A B
NB Well 123n5/15 100 1
123n5/15 200 2
123n5/15 300 3
456n5/15 100 1
456n5/15 200 2
456n5/15 300 3
excito 123n5/15 100 1
123n5/15 200 2
123n5/15 300 3
456n5/15 100 1
456n5/15 200 2
456n5/15 300 3
什麼是推薦輸出? – jezrael
@jezrael我需要一個具有不同值的新列,具體取決於A索引 – lost