Projem için ABD'deki her Devletten veri içeren bir csv dosyasında okuyorum. Fonksiyonum, her bir Devletin bilgileri üzerinde işlem yapmam gerektiğinden bunların her birini ayrı bir Dataframe'e dönüştürür.Python'da her birinde bir sütun seçmek için birden çok veri çerçevesinden nasıl yineleyebilirim?
def RanktoDF(csvFile):
df = pd.read_csv(csvFile)
df = df[pd.notnull(df['Index'])] # drop all null values
df = df[df.Index != 'Index'] #Drop all extra headers
df= df.set_index('State') #Set State as index
return df
benim dosyaların her biri için bu işlevi uygulamak ve benim diziden bir adla df dönmek Bunların hepsi mükemmel çalışıyor
for name , s in zip (glob.glob('*.csv'), varNames):
vars()["Crime" + s] = RanktoDF(name)
varNames. Benim sorunum, aynı zamanda bu Durum Veri Çerçevelerinin her birinden bir sütundan oluşan bir Veri Çerçevesi oluşturmak istiyorum.
benim dataframes listesi içinde yineleme ve kolon (nüfus) i yeni Dataframe bunu eklemek istediğiniz seçerek denedi:
dfNewIndex = pd.DataFrame(index=CrimeRank_1980_df.index) # Create new DF with Index
for name in dfList: #dfList is my list of dataframes. See image
newIndex = name['Population']
dfNewIndex.append(newIndex)
#dfNewIndex = pd.concat([dfNewIndex, dfList[name['Population']], axis=1)
Benim hata hep aynı olan bana söyler isim bir dize yerine gerçek bir Dataframe olarak görülüyor benim liste Strings listesi oldukça inci olduğunu anlıyoruz
TypeError Traceback (most recent call last)
<ipython-input-30-5aa85b0174df> in <module>()
3
4 for name in dfList:
----> 5 newIndex = name['Index']
6 dfNewIndex.append(newIndex)
7 # dfNewIndex = pd.concat([dfNewIndex, dfList[name['Population']], axis=1)
TypeError: string indices must be integers
bir değişken/dataframe, bu yüzden benim istediğim şeyi yapabilmek için kodumu nasıl düzeltebilirim veya bunu yapmanın daha kolay bir yolu var mı?
Baktığım tüm çözümler, veri tabanlarının birleştirilebilmesi için açık bir şekilde yazıldığı yerlerde yanıtlar vermişti, ancak 50 tane benim için çok düşük. Herhangi bir yardım takdir edilecektir.
dfList'deki nesnelerin veri türü olduğundan emin misiniz? çünkü sadece söz konusu veri tabanlarının isimleri gibi görünüyor ve hata tümüyle anlam ifade ediyor. – Aquiles
size beklendiği gibi bu hat çalıştığından emin misiniz: 'df = df [! Df.Index = 'Dizin'] #Drop tüm ekstra headers' – Alexander
@Alexander Evet öyle. Benim CSV dosyasının Onun bir cilvesi olduğunu Onun aynı başlıkları other.They her üst üste 3 tablolar bir birleşmesi yüzden tüm diğer başlıkları kaldırın ve sadece ilkinden kaldım Endeksi sütundan kaldırarak 'Index' tarafından . Cevabınız için teşekkürler. – DaithiOK