此问题在此处已有答案:
Pandas Merging 101(8个回答)
21天前关闭
我正在从h5 td文件中的hdf 5数据集生成嵌套帧。这些数据集通常非常大,我需要合并它们。一般格式如下:
group 1/队列1 group 1/队列1_Time group 1/队列2 group 1/队列2_Time group 2/队列3 group 2/队列3_Time.
在组内,时间通常(并不总是)相同,但我试图验证不同的数据集,因此我希望将它们合并到公共时间轴上,并使用“nan”填补空白。
到目前为止我尝试过的:
import pandas as pd
import h5py
with h5py.File(filename,'r') as hfid:
#create dataframes (I'm using group1 and group2)
#Using a common time name
timeName = "time"
df1 = pd.DataFrame(columns=[timeName,data1Name])
df1[timeName] = hfid["group1/dataset1_Time"][:]
df1[dataName] = hfid["group1/dataset1"][:]
df2 = pd.DataFrame(columns=[timeName,data3Name])
df2[timeName] = hfid["group2/dataset3_Time"][:]
df2[dataName] = hfid["group2/dataset3"][:]
#Merge the DataFrames
#Method 1:
df = df1.append(df2) #Works when no timestamps are shared (they sometimes are)
#Method2:
df = pd.merge(df1,df2,on=timeName,how="left") #Works only for DataFrames with the same timestamps
字符串
我需要一种方法来适当地合并这些 Dataframe ,不会丢失任何数据,并使行像下面的表一样,其中data 3出现的频率是data 1的两倍:
| 时间|data1| data3|
| --|--|--|
| 一百点五| 0 | 1 |
| 一百点六|楠| 1 |
| 一百零七| 0 | 1 |
| 一百零八|楠| 1 |
1条答案
按热度按时间7hiiyaii1#
我发现堆栈溢出通常比适当的文档更容易找到。
根据pandas.DataFrame.merge documentation
我正在寻找how=“outer”参数来使用键的联合。
字符串