Итак, у меня есть df, где я извлекаю одно значение, чтобы сохранить его в другом df:
import pandas as pd
# Create data set
d = {'foo':[100, 111, 222],
'bar':[333, 444, 555]}
df = pd.DataFrame(d)
# Full dataframe:
print(df)
# Shows:
# bar foo
# 0 333 100
# 1 444 111
# 2 555 222
df2=pd.DataFrame()
df2.loc[1,'Name'] = df[df.foo == 222]['foo']
#error:
ValueError: Incompatible indexer with Series
Я предполагаю, что последняя строка выдает эту ошибку, потому что df[df.foo == 222]['foo']
это Series
:
2 222
Name: foo, dtype: int64
Поэтому я пытаюсь получить само значение.Я использовал .at
и получил это:
print(df[df.foo == 222].loc[:,'bar'].at['bar'])
#ValueError: At based indexing on an integer index can only have integer indexers
Из того, что я прочитал, iat
использует целочисленные индексаторы, а at
использует и метку, и целое число, так что здесь происходит?