我已经从groupby和apply方法创建了一个熊猫DataFrame,现在我试图将此DataFrame的子集提取到新的DataFrame中。我创建了一个提取数据的函数,但是我需要,但是它以一系列序列的形式返回数据。不幸的是,我不能直接使用dict将这些系列转换为DataFrame,因为每个系列都是一行,而不是一列。我已经发布了该功能的代码。下面非常感谢您可能提供的任何帮助。
def sel(df):
for i in range(len(df)):
if len(df.iloc[i][4].split()) == 3:
return df.iloc[i][1:4]
然后我要运行此函数并将其分配给变量。
答案 0 :(得分:0)
看起来您想从第4列中包含三个单词的行中提取第1列至第3列,对吗?您可以没有任何循环。
df = pd.DataFrame([[0, 1, 2, 3, "a b c"],
[4, 5, 6, 7, "a b"],
[8, 9, 10, 11, "d e f"]])
df[df[4].str.split().str.len() == 3].iloc[:, 1:4]
# 1 2 3
#0 1 2 3
#2 9 10 11