我有一个数据框列表。每个数据框都有一个称为def list = ["H 11 * * * % env=TEST;state=UP"]
def a = list.findAll { it.indexOf('%') }
if (a.size() > 0) {
print "Found: " + a.size()
}
的列。
我想获取所有数据帧中probe_id
存在的所有行。换句话说,我想在probe_id
上找到数据框的交集。
例如,假设我有4个数据帧,每个数据帧都有probe_id
。在这种情况下,我将返回该行。如果任何数据框中都缺少probe_id '0001'
,我想跳过该行。
此外,由于每个数据框其他列中的值可能会有所不同,因此我需要确保此数据不会丢失。
因此,如果4个数据帧中的每一个都有2列,则结果应该是8列的新数据帧,其中记录probe_id
存在于所有4个数据帧中。
我正在使用:
probe_id
它似乎可以工作,但是我不确定并且有太多记录需要检查。我对使用z = reduce(lambda x, y: pd.merge(x, y, on='PROBE_ID', how='inner'), dataframes)
和reduce
并不完全有信心,因此,如果有人可以让我知道这是否正确,以及是否可以实现我的目标,我将不胜感激。
答案 0 :(得分:1)
您可以使用concat
,如果它们共享同一列,我想您可以将其还原一次,多次保存相同的值是多余的
df_out = pd.concat([
x.set_index('dataframes') for x in dataframes
], axis=1, join ='inner').reset_index()