选择列

时间:2017-11-09 15:58:40

标签: python-3.x pandas

我之前发布的问题为"使用“.between”表示字符串值不在python"而且我不够清楚,但我无法编辑,所以我在这里清楚地重新发布。

我有一个数据框。在[0,61]我有字符串。在[0,69]我有一个字符串。我想切片这两个单元格中的所有数据[0,62:68]并合并它们,并将结果粘贴到[1,61]中。随后,[0,62:68]将为空白,但这并不重要。

但是,我有几百个文档,我想写一个在所有文件上执行的脚本。 [0,61]和[0,69]中的字符串始终存在于所有文档中,但沿着该列中的不同位置。所以我尝试使用:

For_Paste = df [0] [df [0]。之间('工作描述/工作表','其他要求/支持文件',包括= False)]

但我得到的输出是:Series([],Name:0,dtype:object)

我期待一个列表或数组,其中包含我可以合并和粘贴的所需数据。感谢。

enter image description here

1 个答案:

答案 0 :(得分:0)

如果要在数据框idx_start的列idx_end上选择两个索引(例如coldf)之间的行(不包括这两行),将要使用

df.loc[idx_start + 1 : idx_end, col]

要查找与字符串s匹配的第一个索引,请使用

idx = df.index[df[col] == s][0]

因此,对于您的情况,要返回这两个索引之间的一系列行,请尝试以下操作:

start_string = 'DESCRIPTION OF WORK / STATEMENT OF WORK'
end_string = 'ADDITIONAL REQUIREMENTS / SUPPORTING DOCUMENTATION'
idx_start = df.index[df[0] == start_string][0]
idx_end = df.index[df[0] == end_string][0]
For_Paste = df.loc[idx_start + 1 : idx_end, 0]