I zwei Sätze von Daten (Datenrahmen), die jeweils mit zwei Spalten, die zu einander beziehen (läßt sie x und y bezeichnen), wie solche:pandas Datenrahmen Resampling-Säule von nicht-Zeitreihe
Set 1:
x | y
0.1 | 1
0.2 | 2
0.3 | 3
0.4 | 2
0.5 | 3
0.6 | 4
0.7 | 5
Set 2:
x | y
0.12 | 0
0.21 | 2
0.31 | 5
0.44 | 4
0.52 | 3
0.61 | 1
0.76 | 1
I die Y-Werte beiden Sätze summieren soll (bei gleichen x Punkten), aber x leicht falsch ausgerichtet ist. Um dies zu lösen Ich dachte, es wäre am besten, beiden Sätze zur Interpolation von x = 0,12 bis 0,7 0,001 Schritte im Wesentlichen:
mini = max(set1.x.min(), set2.x.min())
maxi = max(set1.x.max(), set2.x.max())
x_interpolation_points = np.arange(maxi, mini, 0.001)
# Next step: interpolate both sets
# last step: sumY = set1.y + set2.y
Wie würde man diesen accomplisch? . Im Falle eines timeserie würde ich Resampling verwenden() interpoliert(), aber dies ist kein timeserie ..
Sie können 'interpolate' auf einer normalen Serie siehe die [docs] (http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.interpolate.html#pandas.Series.interpolate) – EdChum
Das ist, was ich dachte, aber in In den Dokumenten sehe ich keine Optionen zur Interpolation bestimmter Werte. – Yorian
Warum nicht einfach 'set2 ['x'] = set2 ['x']. Round (1)' so dass die Werte übereinstimmen? Oder möchten Sie Set1 so interpolieren, dass Set2 genau übereinstimmt? Du könntest also 'set1.set_index ('x'). Reindex (np.arange (maxi, mini, 0.001) )' und dann kannst du 'merge' – EdChum