如何使用带有熊猫的行键提取CSV文件的特定部分

时间:2018-12-12 11:45:06

标签: python pandas csv dataframe extract

我有一个巨大的CSV文件,其中包含10000行和500列。我想将数据从标题提取到包含device_boot的行。我想消除device_boot之后的所有行。

示例:

Name,Time,status,..
start,05:06:2018 10:10:23,good,..
start,05:06:2018 10:11:23,good,..
failure,05:06:2018 11:10:25,critical,..
device_boot,05:06:2018 13:11:25,reboot,..
start,05:06:2018 13:13:23,good,..
start,05:06:2018 13:16:23,good,..

因此,我需要使用熊猫在CSV文件中最多保留device_boot行(行)。我可以删除该关键字上的特定行,但不能使用pd.drop(...)提取该部分。

感谢您的建议。

2 个答案:

答案 0 :(得分:1)

使用:

print(df.loc[:df['Name'].gt('device_boot').idxmin()+1,:])

输出将是预期的输出。

更新

print(df.loc[:df.index[df['Name']=='device_boot'].tolist()[-1],:])

如果要删除它,它包含'device_boot'行:

print(df.loc[:df.index[df['Name']=='device_boot'].tolist()[-1]-1,:])

答案 1 :(得分:0)

我找到了关键字的索引,例如

val = df.loc[df['name']=='device_boot'].index
print val

然后,使用该行索引并仅检索直到该变量,

rowretrive_index = val1+50  // any extra rows can be added here.
print rowretrive_index

df1 = df.iloc[1:rowretrive_index]
df1.to_csv('/out.csv',',',dtype='unicode8')

希望它会有用。 谢谢, 桑达尔