pandas, заполнено на многоиндексных столбцах - PullRequest
1 голос
/ 02 марта 2020
index_tuples=[]

for distance in ["near", "far"]:
    for vehicle in ["bike", "car"]:
        index_tuples.append([distance, vehicle])

index = pd.MultiIndex.from_tuples(index_tuples, names=["distance", "vehicle"])
df = pd.DataFrame(index=["city"], columns = index)



d = {(x,y):my_home_city[x][y] for x in my_home_city for y in my_home_city[x]}
df.loc['my_home_city',:]=d
df
Out[994]: 
distance     near       far     
vehicle      bike  car bike  car
city          NaN  NaN  NaN  NaN
my_home_city    1    0    0    1

Я хотел бы сделать df['near']['bike'].fillna(False, inplace=True)

он говорит

Значение пытается быть установлено на копию фрагмента из DataFrame

См. Предостережения в документации: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing -вид-против-копия

1 Ответ

0 голосов
/ 02 марта 2020

Я думаю, что inplace не является хорошей практикой, отметьте это и это , поэтому присвойте выбранный столбец обратно tuple:

df[('near', 'bike')] = df[('near', 'bike')].fillna(False)
print (df)
distance       near       far     
vehicle        bike  car bike  car
city          False  NaN  NaN  NaN
my_home_city      1  0.0  0.0  1.0

Но Ваше решение должно быть изменено:

df[('near', 'bike')].fillna(False, inplace=True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...