Sök…


Använda .iloc

.iloc använder heltal för att läsa och skriva data till en DataFrame.

Låt oss först skapa en DataFrame:

df = pd.DataFrame({'one': [1, 2, 3, 4, 5],
                   'two': [6, 7, 8, 9, 10],
              }, index=['a', 'b', 'c', 'd', 'e'])

Denna DataFrame ser ut som:

   one  two
a    1    6
b    2    7
c    3    8
d    4    9
e    5   10

Nu kan vi använda .iloc för att läsa och skriva värden. Låt oss läsa den första raden, första kolumnen:

print df.iloc[0, 0]

Detta kommer att skriva ut:

1

Vi kan också ställa in värden. Låter ställa in den andra kolumnen, den andra raden till något nytt:

df.iloc[1, 1] = '21'

Och titta sedan för att se vad som hände:

print df 

   one two
a    1   6
b    2  21
c    3   8
d    4   9
e    5  10

Använda .loc

.loc använder etiketter för att läsa och skriva data.

Låt oss ställa in en DataFrame:

df = pd.DataFrame({'one': [1, 2, 3, 4, 5],
                   'two': [6, 7, 8, 9, 10],
                  }, index=['a', 'b', 'c', 'd', 'e'])

Sedan kan vi skriva ut DataFrame för att titta på formen:

print df 

Detta kommer att matas ut

   one  two
a    1    6
b    2    7
c    3    8
d    4    9
e    5   10

Vi använder kolumn- och radetiketter för att komma åt data med .loc. Låt oss ställa rad 'c', kolumn 'två' till värdet 33:

df.loc['c', 'two'] = 33 

Så här ser DataFrame ut:

   one  two
a    1    6
b    2    7
c    3   33
d    4    9
e    5   10

Observera att användning av df['two'].loc['c'] = 33 kanske inte rapporterar en varning, och kan till och med fungera, men att använda df.loc['c', 'two'] garanteras att fungera korrekt , medan den förstnämnda inte är det.

Vi kan till exempel läsa data

print df.loc['a':'c'] 

kommer att skriva ut rader a till c. Detta är inkluderande.

   one  two
a    1    6
b    2    7
c    3    8

Och slutligen kan vi göra båda tillsammans:

print df.loc['b':'d', 'two']

Kommer att mata ut raderna b till c i kolumnen "två". Lägg märke till att kolumnetiketten inte skrivs ut.

b    7
c    8
d    9

Om .loc levereras med ett heltalargument som inte är en etikett återgår det till heltalindexering av axlar (beteende hos .iloc). Detta möjliggör indexering av blandade etiketter och heltal:

df.loc['b', 1]

kommer att returnera värdet i 2: a kolumnen (index börjar vid 0) i rad 'b':

7


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow