Saya mencoba mendapatkan data tertentu dalam kerangka data menggunakan for loop. Tetapi ketika saya menjalankan loop yang saya dapatkan hanyalah indeks data, bukan nilai yang disajikan dalam baris

import pandas as pd
import numpy as np

data = {'time' : [1,2,3,4,5,6,7,8,9,10,11,12], 'values'[290,260,288,300,310,303,329,340,316,330,308,310]}

df = pd.DataFrame(data)

for i in df:

    print(i)

Saya hanya mendapatkan indeks bukan nilainya

Saya juga mencoba:

for index , values in df:

    print(values)

Ini memberi saya kesalahan ini: tidak dapat membongkar objek int non-iterable

Saya tahu iterrows memberi saya baris tetapi saya menginginkannya sebagai kerangka data lengkap bukan setiap baris row

2
user123 5 Januari 2021, 15:26

3 jawaban

Jawaban Terbaik

Anda juga dapat menggunakan df.values untuk mengulangi DataFrame

import pandas as pd
import numpy as np

data = {'time' : [1,2,3,4,5,6,7,8,9,10,11,12], 'values':[290,260,288,300,310,303,329,340,316,330,308,310]}

df = pd.DataFrame.from_dict(data)

>>> for i in df.values:
...     print(i)
...
[  1 290]
[  2 260]
[  3 288]
[  4 300]
[  5 310]
[  6 303]
[  7 329]
[  8 340]
[  9 316]
[ 10 330]
[ 11 308]
[ 12 310]

Selanjutnya Anda dapat memfilter baris yang diperlukan berdasarkan indexes kolom

0
Vaebhav 5 Januari 2021, 12:39

Coba gunakan DataFrame.iterrows() :

for index,row in df.iterrows():
    
    print(row)
    # each row is a pd.Series object so to access any values call row['column_name']
    time,value = row['time'],row['value']
    print(time,value)

Catatan: lagi pula saya ingin berkomentar bahwa tidak disarankan untuk menggunakan jenis operasi ini di panda karena ini adalah solusi nonvectorized yang kurang dalam kinerja dibandingkan dengan operasi vektor, saya sarankan Anda untuk mencari vektorisasi di internet ... semoga berhasil: )

6
adir abargil 5 Januari 2021, 12:37

Coba gunakan ini:

for ind in df.index:
     print(list(df[col][ind] for col in df.columns))

Sepotong kode ini mencetak data berdasarkan baris

0
Ravi 5 Januari 2021, 14:01