我有一个类似的df1,有千列和数千行。我会 喜欢根据第1行单元格中的条件进行随机抽样 (date0)基本上我想过滤列并返回 它们和Datetime索引基于条件,如果单元格上 date0行等于V1,然后对cell == V2进行相同的采样 V3..etc。
然后我将所有这些样本连接成一个单数 数据帧。我想确保返回原始日期时间索引 而不是通用索引0,1,2,3 ...
abc def ghi jkl mno pqr
date0 'V1' 'V1' 'V2' 'V3' 'V0' 'V1'
date1 2 5 6 3 2 1
date2 3 1 1 3 5 6
date3 4 4 2 7 8 0
要过滤我到目前为止尝试了这个但是它不起作用
数据集1 = Dataset.ix[:,(random.sample(list(Dataset.iloc[0,:]=='V2'), 4))].copy()
4只是返回列数的任意数。
然后我需要连接。
谢谢!
答案 0 :(得分:1)
您希望将date0
作为列索引的一部分。
df1 = df.T.set_index('date0', append=True).T
df1
然后您可以使用xs
来截取
df1.xs('V1', axis=1, level=1)
对评论的回应
这适用于在不知道行索引值
df1 = df.iloc[1:].T.set_index(df.iloc[0], append=True).T
df1.xs('V1', axis=1, level=1)
对第二条评论的回应
iloc[1:]
旨在明确删除第一行。如果你想保留它,请不要包含该部分。
df1 = df.T.set_index(df.iloc[0], append=True).T
df1
df1.xs('V1', axis=1, level=1)