在pandas多索引数据帧中设置值



我正试图使用本文中的建议在pandas多索引数据帧的单元格中设置一个值。但因为我有一个日期时间作为索引,所以我似乎无法访问特定的单元格。有没有一种有效的方法可以做到这一点,而不会像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那样发出任何警告。

import pandas as pd
y = pd.DataFrame(data = 0,
index = pd.date_range('2021-08-01', '2021-09-15', freq='D'),
columns = pd.MultiIndex.from_product([['purple', 'green'], 
['fish', 'goat', 'cat'],
['gamma', 'alpha', 'beta']]))
y.loc[y.index=='2021-08-03',('green','cat','gamma')] = 34
# y[[('2021-08-03','green','cat','gamma')]] = 34
# y['2021-08-03']['green']['cat']['gamma'] = 34
y.head()

您可以使用ilocloc函数访问和修改数据帧中的任何单元格

y.iloc[2,4]=45   #for purple, goat alpha

y.loc["2021-08-03",("purple","goat","alpha")]=45

最新更新