Lineare regression mit pandas dataframe

Ich habe einen dataframe in pandas, die ich verwende, um zu produzieren ein Streudiagramm, und möchte eine Regressionsgerade für die Handlung. Jetzt versuche ich, dies zu tun mit polyfit.

Hier ist mein code:

import pandas as pd
import matplotlib
import matplotlib.pyplot as plt
from numpy import *

table1 = pd.DataFrame.from_csv('upregulated_genes.txt', sep='\t', header=0, index_col=0)
table2 = pd.DataFrame.from_csv('misson_genes.txt', sep='\t', header=0, index_col=0)
table1 = table1.join(table2, how='outer')

table1 = table1.dropna(how='any')
table1 = table1.replace('#DIV/0!', 0)

# scatterplot
plt.scatter(table1['log2 fold change misson'], table1['log2 fold change'])
plt.ylabel('log2 expression fold change')
plt.xlabel('log2 expression fold change Misson et al. 2005')
plt.title('Root Early Upregulated Genes')
plt.axis([0,12,-5,12])

# this is the part I'm unsure about
regres = polyfit(table1['log2 fold change misson'], table1['log2 fold change'], 1)

plt.show()

Aber ich bekomme die folgende Fehlermeldung:

TypeError: cannot concatenate 'str' and 'float' objects

Weiß jemand, wo ich bin läuft hier falsch? Ich bin mir auch nicht sicher, wie Sie die Regressionsgeraden zu meinem Grundstück. Andere Allgemeine Kommentare, die auf meinen code wäre auch äußerst geschätzt, ich bin noch Anfänger.

in welcher Zeile bekommst du den Fehler?
regres = polyfit(table1['log2 fold change misson'], table1['log2 fold change'], 1)
sicher, es gibt keine NaN-Werte in den Tabellen? da pylab.scatter-nur nicht der plot die x -, y-Punkte, an denen x oder y NaN (was bedeutet, dass es nicht geben Fehler), aber vielleicht polyfit doesnt wissen, dass? (nur zu raten, wo das problem sein könnte, hier - wie not-a-number-Werte gespeichert, die in Ihrer csv-Datei?)
Nope kein NaN-Werte. Die einzige not-a-number-Werte " #DIV/0!', die habe ich entfernt
was ist der Typ von table1['log2 Falten change misson'] und table1['log2 fold change'] ? (soweit ich weiß sollen Sie sein numpy.array mit float als dtype (und beide sollten die gleiche Form haben))

InformationsquelleAutor TimStuart | 2013-10-15

Schreibe einen Kommentar