Saya ingin mengganti nama Weekday menjadi day_of_week dalam kerangka data di bawah ini

Weekday    Value
2          10
2          5
8          50
7          20
4          11

Menggunakan

df = df.rename(columns = {'Weekday' : 'day_of_week'})

Saya kemudian melihat bahwa df telah dikonversi ke pandas.core.series.Series dari DataFrame, yang bukan itu maksud saya, karena saya ingin mengganti semua 8 dengan 1 di kolom dalam DataFrame, dan saya tidak yakin bagaimana melakukannya dengan series.

Pertanyaanku adalah:

1) apa saja cara berbeda untuk mengganti nama kolom dalam kerangka data pandas dan perbedaannya (mengenai transformasi tipe data)?

2) apa cara terbaik untuk menyelesaikan masalah dalam kasus saya dan bagaimana melakukannya?

Terima kasih


Memperbarui: Maaf masalahnya terletak pada penggantian nilai 8 dengan 1 di kolom day_of_week setelah mengganti nama.

Masalah baru: Saya menggunakan

df['day_of_week'].replace(['8'], '1') 
df['day_of_week'].describe()

Dan itu menunjukkan bahwa nilainya tidak berubah. Apa cara yang benar untuk melakukan ini?

-1
nilsinelabore 5 Desember 2019, 02:31

1 menjawab

Jawaban Terbaik

Periksa jenis dan indeks kerangka data Anda setiap saat. Metode rename yang diterapkan ke kerangka data selalu mengembalikan kerangka data.

df.index
type(df)

Anda dapat menggunakan:

#df=df.reset_index() # if Weekday is the index
df['Weekday']=df['Weekday'].mask(df['Weekday']>7,df['Weekday']%7)
df=df.rename(columns = {'Weekday' : 'day_of_week'})
print(df)

Keluaran

   day_of_week  Value
0            2     10
1            2      5
2            1     50
3            7     20
4            4     11

Dataframe.rename adalah apa yang kami gunakan untuk mengganti nama kolom meskipun Anda dapat menggunakan:

df.columns=[the names of your columns]
0
ansev 4 Desember 2019, 23:47