Heim Backend-Entwicklung Python-Tutorial Einige Tipps zur Implementierung der Datentypkonvertierung in Pandas

Einige Tipps zur Implementierung der Datentypkonvertierung in Pandas

May 07, 2018 am 11:44 AM
pandas 类型 转换

Dieser Artikel stellt hauptsächlich einige Techniken zur Datentypkonvertierung in Pandas vor. Er hat einen gewissen Referenzwert. Jetzt können Freunde in Not darauf verweisen.

Vorwort

Pandas ist ein wichtiges Datenanalysetool in Python. Bei der Verwendung von Pandas für die Datenanalyse ist es sehr wichtig, sicherzustellen, dass der richtige Datentyp verwendet wird, da sonst einige unvorhersehbare Fehler auftreten können.

Datentypen in Pandas: Datentypen sind im Wesentlichen die internen Strukturen, die Programmiersprachen verwenden, um zu verstehen, wie Daten gespeichert und bearbeitet werden. Ein Programm muss beispielsweise verstehen, dass man zwei Zahlen addieren kann, beispielsweise 5 + 10, um 15 zu erhalten. Wenn es sich um zwei Zeichenfolgen wie „cat“ und „hat“ handelt, können Sie diese auch verketten (hinzufügen), um „cathat“ zu erhalten. Shangxuetang·Baizhan-Programmierer Herr Chen wies darauf hin, dass ein potenziell verwirrender Aspekt der Pandas-Datentypen darin bestehe, dass es gewisse Überschneidungen zwischen den Datentypen von Pandas, Python und Numpy gebe.

Meistens müssen Sie sich keine Gedanken darüber machen, ob Sie einen Pandas-Typ explizit in den entsprechenden NumPy-Typ umwandeln sollten. Im Allgemeinen können Sie die Standardeinstellungen int64 und float64 von Pandas verwenden. Der einzige Grund, warum ich diese Tabelle einfüge, besteht darin, dass Sie manchmal Numpy-Typen zwischen Codezeilen oder während Ihrer eigenen Analyse sehen.
Datentypen gehören zu den Dingen, die Sie nicht interessieren, bis Sie auf einen Fehler oder ein unerwartetes Ergebnis stoßen. Aber es ist auch das Erste, was Sie überprüfen sollten, wenn Sie neue Daten zur weiteren Analyse in Pandas laden.

Der Autor verwendet Pandas schon seit einiger Zeit, aber ich mache bei einigen kleineren Problemen immer noch Fehler. Als ich auf die Quelle zurückblickte, stellte ich fest, dass einige Feature-Spalten nicht von der Art sind, mit denen Pandas umgehen kann Daten. Daher werden in diesem Artikel einige Tipps zum Konvertieren der grundlegenden Datentypen von Python in Datentypen erläutert, die von Pandas verarbeitet werden können.

Datentypen, die jeweils von Pandas, Numpy und Python unterstützt werden


Aus der obigen Tabelle Es ist ersichtlich, dass Pandas die am häufigsten vorkommenden Datentypen unterstützt. In einigen Fällen können Numpy-Datentypen in Pandas-Datentypen konvertiert werden.

Einführen tatsächlicher Daten zur Analyse

Der Datentyp ist etwas, das Sie möglicherweise nicht groß interessiert, bis Sie das falsche Ergebnis erhalten, also in Ein Beispiel von Hier wird die tatsächliche Datenanalyse vorgestellt, um das Verständnis zu vertiefen.

import numpy as np
import pandas as pd

data = pd.read_csv('data.csv', encoding='gbk') #因为数据中含有中文数据
data
Nach dem Login kopieren


Die Daten werden jetzt geladen, wenn Sie jetzt einige Operationen an den Daten durchführen möchten, z Fügen Sie die entsprechenden Elemente in den Spalten 2016 und 2017 hinzu.

Daten['2016'] + Daten['2017'] #Selbstverständlich


Den Ergebnissen nach zu urteilen, gibt es wie erwartet keine entsprechende Addition numerischer Werte. Dies liegt daran, dass die Hinzufügung von Objekttypen in Pandas der Hinzufügung von Zeichenfolgen in Python entspricht.

data.info() #Bevor Sie die Daten verarbeiten, sollten Sie die relevanten Informationen der geladenen Daten überprüfen


Nachdem Sie die relevanten Informationen zum Laden von Daten gelesen haben, können Sie die folgenden Probleme feststellen:

  • Der Datentyp der Kundennummer ist int64 statt Objekttyp

  • Der Datentyp der Spalten 2016 und 2017 ist ein Objekt statt eines numerischen Typs (int64, float64)

  • Der Datentyp der Wachstumsrate und der Gruppe sollte sein numerischer Typ statt Objekttyp

  • Die Datentypen von Jahr, Monat und Tag sollten vom Typ datetime64 statt vom Objekttyp sein

Es gibt drei Grundlegende Methoden für die Datentypkonvertierung in Pandas:

  • Verwenden Sie die Funktion astype() für die erzwungene Typkonvertierung

  • Benutzerdefinierte Funktion für die Datentypkonvertierung

  • Verwenden Sie die von Pandas bereitgestellten Funktionen wie to_numeric(), to_datetime()

Verwenden Sie die Funktion astype() für die Typkonvertierung

Der einfachste Weg, den Datentyp der Datenspalte zu konvertieren, ist die Verwendung der astype()-Funktion

data['客户编号'].astype('object')

data['客户编号'] = data['客户编号'].astype('object') #对原始数据进行转换并覆盖原始数据列
Nach dem Login kopieren

Sehen Sie sich die obigen Ergebnisse an. Es klingt gut. Hier sind ein paar Beispiele, bei denen die Funktion astype() mit Spaltendaten funktioniert, aber fehlschlägt

data['2017'].astype('float')
Nach dem Login kopieren

data['所属组'].astype('int')
Nach dem Login kopieren


从上面两个例子可以看出,当待转换列中含有不能转换的特殊值时(例子中¥,ErrorValue等)astype()函数将失效。有些时候astype()函数执行成功了也并不一定代表着执行结果符合预期(神坑!)

data['状态'].astype('bool')
Nach dem Login kopieren


乍一看,结果看起来不错,但仔细观察后,会发现一个大问题。那就是所有的值都被替换为True了,但是该列中包含好几个N标志,所以astype()函数在该列也是失效的。

总结一下astype()函数有效的情形:

  • 数据列中的每一个单位都能简单的解释为数字(2, 2.12等)

  • 数据列中的每一个单位都是数值类型且向字符串object类型转换

如果数据中含有缺失值、特殊字符astype()函数可能失效。

使用自定义函数进行数据类型转换

该方法特别适用于待转换数据列的数据较为复杂的情形,可以通过构建一个函数应用于数据列的每一个数据,并将其转换为适合的数据类型。

对于上述数据中的货币,需要将它转换为float类型,因此可以写一个转换函数:

def convert_currency(value):
 """
 转换字符串数字为float类型
 - 移除 ¥ ,
 - 转化为float类型
 """
 new_value = value.replace(',', '').replace('¥', '')
 return np.float(new_value)
Nach dem Login kopieren

现在可以使用Pandas的apply函数通过covert_currency函数应用于2016列中的所有数据中。

data['2016'].apply(convert_currency)
Nach dem Login kopieren


该列所有的数据都转换成对应的数值类型了,因此可以对该列数据进行常见的数学操作了。如果利用lambda表达式改写一下代码,可能会比较简洁但是对新手不太友好。

data['2016'].apply(lambda x: x.replace('¥', '').replace(',', '')).astype('float')
Nach dem Login kopieren

当函数需要重复应用于多个列时,个人推荐使用第一种方法,先定义函数还有一个好处就是可以搭配read_csv()函数使用(后面介绍)。

#2016、2017列完整的转换代码
data['2016'] = data['2016'].apply(convert_currency)
data['2017'] = data['2017'].apply(convert_currency)
Nach dem Login kopieren

同样的方法运用于增长率,首先构建自定义函数

def convert_percent(value):
 """
 转换字符串百分数为float类型小数
 - 移除 %
 - 除以100转换为小数
 """
 new_value = value.replace('%', '')
 return float(new_value) / 100
Nach dem Login kopieren

使用Pandas的apply函数通过covert_percent函数应用于增长率列中的所有数据中。

data['增长率'].apply(convert_percent)
Nach dem Login kopieren

使用lambda表达式:

data['增长率'].apply(lambda x: x.replace('%', '')).astype('float') / 100
Nach dem Login kopieren

结果都相同:


为了转换状态列,可以使用Numpy中的where函数,把值为Y的映射成True,其他值全部映射成False。

data['状态'] = np.where(data['状态'] == 'Y', True, False)
Nach dem Login kopieren

同样的你也可以使用自定义函数或者使用lambda表达式,这些方法都可以完美的解决这个问题,这里只是多提供一种思路。

利用Pandas的一些辅助函数进行类型转换

Pandas的astype()函数和复杂的自定函数之间有一个中间段,那就是Pandas的一些辅助函数。这些辅助函数对于某些特定数据类型的转换非常有用(如to_numeric()、to_datetime())。所属组数据列中包含一个非数值,用astype()转换出现了错误,然而用to_numeric()函数处理就优雅很多。

pd.to_numeric(data['所属组'], errors='coerce').fillna(0)
Nach dem Login kopieren


可以看到,非数值被替换成0.0了,当然这个填充值是可以选择的,具体文档见
pandas.to_numeric - pandas 0.22.0 documentation

Pandas中的to_datetime()函数可以把单独的year、month、day三列合并成一个单独的时间戳。

pd.to_datetime(data[['day', 'month', 'year']])
Nach dem Login kopieren

完成数据列的替换

data['new_date'] = pd.to_datetime(data[['day', 'month', 'year']]) #新产生的一列数据
data['所属组'] = pd.to_numeric(data['所属组'], errors='coerce').fillna(0)
Nach dem Login kopieren

到这里所有的数据列都转换完毕,最终的数据显示:


在读取数据时就对数据类型进行转换,一步到位

data2 = pd.read_csv("data.csv",
   converters={
    '客户编号': str,
    '2016': convert_currency,
    '2017': convert_currency,
    '增长率': convert_percent,
    '所属组': lambda x: pd.to_numeric(x, errors='coerce'),
    '状态': lambda x: np.where(x == "Y", True, False)
    },
   encoding='gbk')
Nach dem Login kopieren

在这里也体现了使用自定义函数比lambda表达式要方便很多。(大部分情况下lambda还是很简洁的,笔者自己也很喜欢使用)

Zusammenfassung

Der erste Schritt beim Betrieb eines Datensatzes besteht darin, sicherzustellen, dass der richtige Datentyp festgelegt ist, und dann können die Daten eingegeben werden analysiert und visualisiert Für andere Vorgänge bietet Pandas viele sehr praktische Funktionen. Mit diesen Funktionen ist es sehr praktisch, die Daten zu analysieren.

Verwandte Empfehlungen:

Pandas implementiert die Auswahl von Zeilen spezifischer Indizes

Das obige ist der detaillierte Inhalt vonEinige Tipps zur Implementierung der Datentypkonvertierung in Pandas. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Praktische Tipps zum Konvertieren von englischen Buchstaben voller Breite in halbbreite Buchstaben Praktische Tipps zum Konvertieren von englischen Buchstaben voller Breite in halbbreite Buchstaben Mar 26, 2024 am 09:54 AM

Praktische Tipps zum Umwandeln von englischen Buchstaben in voller Breite in Formen mit halber Breite. Im modernen Leben kommen wir häufig mit englischen Buchstaben in Kontakt und müssen bei der Verwendung von Computern, Mobiltelefonen und anderen Geräten häufig englische Buchstaben eingeben. Manchmal stoßen wir jedoch auf englische Buchstaben in voller Breite und müssen die Form mit halber Breite verwenden. Wie konvertiert man also englische Buchstaben in voller Breite in die Form mit halber Breite? Hier sind einige praktische Tipps für Sie. Erstens beziehen sich englische Buchstaben und Zahlen in voller Breite auf Zeichen, die in der Eingabemethode eine Position in voller Breite einnehmen, während englische Buchstaben und Zahlen in halber Breite eine Position in voller Breite einnehmen.

Wie konvertiert man ODT in Word in Windows 11/10? Wie konvertiert man ODT in Word in Windows 11/10? Feb 20, 2024 pm 12:21 PM

In diesem Artikel zeigen wir Ihnen, wie Sie OpenDocumentTextDocument (ODT)-Dateien in Microsoft Word (Docx, DOC usw.) konvertieren. Format. So konvertieren Sie ODT in Word in Windows 11/10. So können Sie ODT-Dokumente auf einem Windows-PC in das DOC- oder DOCX-Format konvertieren: Konvertieren Sie ODT in Word mit WordPad oder Word. Die erste Methode, die wir Ihnen zeigen werden, ist die Verwendung von WordPad oder Word MicrosoftWord zum Konvertieren von ODT in Word. Hier sind die Schritte, um dies zu erreichen: Öffnen Sie zunächst die WordPad-App über das Startmenü. Jetzt geh zu

Golang-Zeitverarbeitung: So konvertieren Sie Zeitstempel in Golang in einen String Golang-Zeitverarbeitung: So konvertieren Sie Zeitstempel in Golang in einen String Feb 24, 2024 pm 10:42 PM

Golang-Zeitkonvertierung: So konvertieren Sie einen Zeitstempel in einen String. In Golang ist die Zeitoperation eine der häufigsten Operationen. Manchmal müssen wir den Zeitstempel zur einfacheren Anzeige oder Speicherung in eine Zeichenfolge umwandeln. In diesem Artikel wird erläutert, wie Sie mit Golang Zeitstempel in Zeichenfolgen konvertieren, und es werden spezifische Codebeispiele bereitgestellt. 1. Konvertierung von Zeitstempeln und Zeichenfolgen In Golang werden Zeitstempel normalerweise in Form von Ganzzahlen ausgedrückt, die die Anzahl der Sekunden vom 1. Januar 1970 bis zum aktuellen Zeitpunkt darstellen. Die Zeichenfolge ist

Detaillierte Erläuterung der Implementierungsmethode zur Konvertierung von PHP-Monaten in englische Monate Detaillierte Erläuterung der Implementierungsmethode zur Konvertierung von PHP-Monaten in englische Monate Mar 21, 2024 pm 06:45 PM

In diesem Artikel wird detailliert beschrieben, wie Monate in PHP in englische Monate konvertiert werden, und es werden spezifische Codebeispiele gegeben. In der PHP-Entwicklung müssen wir manchmal digitale Monate in englische Monate konvertieren, was in einigen Datumsverarbeitungs- oder Datenanzeigeszenarien sehr praktisch ist. Die Implementierungsprinzipien, spezifischen Codebeispiele und Vorsichtsmaßnahmen werden im Folgenden ausführlich erläutert. 1. Implementierungsprinzip In PHP können Sie digitale Monate mithilfe der DateTime-Klasse und der Formatmethode in englische Monate konvertieren. Datum

So konvertieren Sie QQ-Musik in das MP3-Format. Konvertieren Sie QQ-Musik auf dem Mobiltelefon in das MP3-Format So konvertieren Sie QQ-Musik in das MP3-Format. Konvertieren Sie QQ-Musik auf dem Mobiltelefon in das MP3-Format Mar 21, 2024 pm 01:21 PM

Mit QQ Music kann jeder Filme genießen und sich jeden Tag langweilen. Eine große Anzahl hochwertiger Songs steht zum Anhören zur Verfügung Wenn Sie sie das nächste Mal anhören, benötigen Sie keine Internetverbindung. Die hier heruntergeladenen Songs sind nicht im MP3-Format und können nicht auf anderen Plattformen verwendet werden. Daher gibt es keine Möglichkeit, sie erneut anzuhören Viele Freunde möchten die Songs ins MP3-Format konvertieren. Hier erklärt der Herausgeber, dass Sie Methoden bereitstellen, damit jeder sie verwenden kann! 1. Öffnen Sie QQ Music auf Ihrem Computer, klicken Sie auf die Schaltfläche [Hauptmenü] in der oberen rechten Ecke, klicken Sie auf [Audiotranskodierung], wählen Sie die Option [Song hinzufügen] und fügen Sie die Songs hinzu, die konvertiert werden müssen. 2. Nach dem Hinzufügen Um die Songs anzuzeigen, klicken Sie, um „In [mp3] konvertieren“ auszuwählen.

So konvertieren Sie englische Buchstaben voller Breite in Buchstaben halber Breite So konvertieren Sie englische Buchstaben voller Breite in Buchstaben halber Breite Mar 25, 2024 pm 02:45 PM

So konvertieren Sie englische Buchstaben voller Breite in Buchstaben halber Breite. Im täglichen Leben und bei der Arbeit stoßen wir manchmal auf Situationen, in denen wir englische Buchstaben voller Breite in Buchstaben halber Breite umwandeln müssen, z. B. beim Eingeben von Computerkennwörtern, beim Bearbeiten von Dokumenten usw Entwerfen von Layouts. Englische Buchstaben und Zahlen in voller Breite beziehen sich auf Zeichen mit der gleichen Breite wie chinesische Schriftzeichen, während sich englische Buchstaben in halber Breite auf Zeichen mit einer schmaleren Breite beziehen. Im tatsächlichen Betrieb müssen wir einige einfache Methoden beherrschen, um englische Buchstaben voller Breite in Buchstaben halber Breite umzuwandeln, damit wir Text und Zahlen bequemer verarbeiten können. 1. Englische Buchstaben voller Breite und englische Buchstaben halber Breite

PHP-Tutorial: So konvertieren Sie den Typ int in einen String PHP-Tutorial: So konvertieren Sie den Typ int in einen String Mar 27, 2024 pm 06:03 PM

PHP-Tutorial: So konvertieren Sie den Int-Typ in einen String. In PHP ist das Konvertieren von Ganzzahldaten in einen String ein häufiger Vorgang. In diesem Tutorial erfahren Sie, wie Sie die in PHP integrierten Funktionen verwenden, um den Typ int in einen String zu konvertieren, und stellen gleichzeitig spezifische Codebeispiele bereit. Cast verwenden: In PHP können Sie Cast verwenden, um ganzzahlige Daten in einen String umzuwandeln. Diese Methode ist sehr einfach. Sie müssen lediglich (string) vor den ganzzahligen Daten hinzufügen, um sie in einen String umzuwandeln. Unten finden Sie einen einfachen Beispielcode

Wie erstelle ich ein Videomatrix-Konto? Welche Arten von Matrixkonten gibt es? Wie erstelle ich ein Videomatrix-Konto? Welche Arten von Matrixkonten gibt es? Mar 21, 2024 pm 04:57 PM

Mit der Beliebtheit von Kurzvideoplattformen ist Video-Matrix-Account-Marketing zu einer aufstrebenden Marketingmethode geworden. Durch die Erstellung und Verwaltung mehrerer Konten auf verschiedenen Plattformen können Unternehmen und Einzelpersonen Ziele wie Markenwerbung, Fanwachstum und Produktverkäufe erreichen. In diesem Artikel wird erläutert, wie Sie Video-Matrix-Konten effektiv nutzen und verschiedene Arten von Video-Matrix-Konten vorgestellt. 1. Wie erstelle ich ein Videomatrix-Konto? Um ein gutes Video-Matrix-Konto zu erstellen, müssen Sie die folgenden Schritte befolgen: Zunächst müssen Sie klären, was das Ziel Ihres Video-Matrix-Kontos ist, sei es für die Markenkommunikation, das Fanwachstum oder den Produktverkauf. Klare Ziele helfen dabei, entsprechende Strategien zu entwickeln. 2. Wählen Sie eine Plattform: Wählen Sie eine geeignete Kurzvideoplattform basierend auf Ihrer Zielgruppe. Zu den aktuellen Mainstream-Kurzvideoplattformen gehören Douyin, Kuaishou, Huoshan Video usw.

See all articles