इंटरपोल करें यह स्टैक ओवरफ्लो पर मेरा पहला प्रश्न है। मेरे साथ सामान्य रहो!दो पांडो डेटाफ्रेम को संयोजित करें, एक बार कॉलम पर दोहराएं,
मेरे पास अलग-अलग नमूना दरों के साथ विभिन्न अधिग्रहण प्रणालियों द्वारा एक साथ अधिग्रहित दो डेटा सेट हैं। एक बहुत नियमित है, और दूसरा नहीं है। मैं दोनों के संदर्भ के रूप में नियमित रूप से दूरी वाले टाइमस्टैम्प (सेकेंड में) का उपयोग करके डेटा सेट दोनों युक्त एक डेटाफ्रेम बनाना चाहता हूं। अनियमित रूप से नमूना डेटा नियमित रूप से दूरी वाले टाइमस्टैम्प पर अलग-अलग किया जाना चाहिए।
df1:
t y1
0 0.0 0.0
1 0.5 0.5
2 1.0 1.0
3 1.5 1.5
4 2.0 2.0
df2:
t y2
0 0.00 0.00
1 0.34 1.02
2 1.01 3.03
3 1.40 4.20
4 1.60 4.80
5 1.70 5.10
6 2.01 6.03
मैं y2 interpolating, DF1 और df2 मर्ज करने के लिए कोशिश कर रहा हूँ:
import pandas as pd
import numpy as np
# evenly spaced times
t1 = np.array([0,0.5,1.0,1.5,2.0])
y1 = t1
# unevenly spaced times
t2 = np.array([0,0.34,1.01,1.4,1.6,1.7,2.01])
y2 = 3*t2
df1 = pd.DataFrame(data={'y1':y1,'t':t1})
df2 = pd.DataFrame(data={'y2':y2,'t':t2})
DF1 df2 इस तरह दिखना और:
यहाँ कुछ खिलौना डेटा मैं क्या करना है कोशिश कर रहा हूँ प्रदर्शन है df1.t पर वांछित परिणाम है:
df_combined:
t y1 y2
0 0.0 0.0 0.0
1 0.5 0.5 1.5
2 1.0 1.0 3.0
3 1.5 1.5 4.5
4 2.0 2.0 6.0
मैं pandas.resample के लिए दस्तावेज़ पढ़ने किया गया है, साथ ही पिछले stackoverflow सवाल खोज हूं, लेकिन अपने विशेष समस्या के लिए एक समाधान खोजने के लिए सक्षम है। कोई विचार? ऐसा लगता है कि यह आसान होना चाहिए।
अद्यतन: प्रथम, द्वितीय श्रृंखला को जोड़ है, तो पहले डेटा फ्रेम को संलग्न:
from scipy.interpolate import interp1d
f2 = interp1d(t2,y2,bounds_error=False)
df1['y2'] = f2(df1.t)
जो देता है:
df1:
t y1 y2
0 0.0 0.0 0.0
1 0.5 0.5 1.5
2 1.0 1.0 3.0
3 1.5 1.5 4.5
4 2.0 2.0 6.0
काम करता है यही कारण है कि, लेकिन मैं मैं एक संभव समाधान पता लगा यदि कोई बेहतर तरीका है तो मैं अभी भी अन्य समाधानों के लिए खुला हूं।
आपको अपने संपादन को उत्तर के रूप में जोड़ना चाहिए ताकि अन्य उन्हें – Stedy
ढूंढ सकें, इसमें मुझे थोड़ी देर लग गई। अपनी खुद की पोस्ट का महान जवाब। धन्यवाद! मुझे लगता है कि यह पांडस में डेटाफ्रेम पर एक बुनियादी कार्यक्षमता होनी चाहिए, लेकिन मुझे लगता है कि कोई आंतरिक विधि नहीं है। – CodeMonkey
मैंने अभी @ K3 --- आरएनसी से जवाब देखा है। मेरे अपने उत्तर से एक क्लीनर समाधान की तरह लगता है, लेकिन ऐसा लगता है कि या तो ठीक काम करेगा। धन्यवाद! – ollerend