1

我有一个 Pandas 数据框,在最后几行中有额外的数据。我需要识别具有特定列值的行并删除从该行及以下开始的所有行。

数据框示例:

Mod            Day           Initials
 1            9/4/18            AV
 2            4/20/19           AV
 3            7/18/17           AV
 4            12/1/13           AV
Program       Title           Amount
Axis          Axis Gig         $35
Rex           Rex Gig          $75
DOM           Triple Z         $15

因此,我想确定数据框在“日”列中的“标题”位置,并删除该行及其下方的所有行。

4

2 回答 2

0

您可以将布尔索引与df.where

s = """Mod,Day,Initials
1,9/4/18,AV
2,4/20/19,AV
3,7/18/17,AV
4,12/1/13,AV
Program,Title,Amount
Axis,Axis Gig,$35
Rex,Rex Gig,$75
DOM,Triple Z,$15"""

df = pd.read_csv(StringIO(s))

# select where your col equals 'Title' then fill all other values with nan
# forward fill all nan values after title and the use boolean indexing
new_df = df[df['Day'].where(df['Day'] == 'Title', np.nan).ffill() != 'Title']

  Mod      Day Initials
0   1   9/4/18       AV
1   2  4/20/19       AV
2   3  7/18/17       AV
3   4  12/1/13       AV
于 2020-09-21T14:04:25.663 回答
0

您可以找到索引并仅保留该行之前的所有内容

df = df[0:df[df['Day'] == 'Title'].index[0]]
df

输出

  Mod      Day Initials
0   1   9/4/18       AV
1   2  4/20/19       AV
2   3  7/18/17       AV
3   4  12/1/13       AV
于 2020-09-21T14:05:01.977 回答