如何根据python/pandas中的索引选择行



我在csv文件中有一行:

0   1  2                        3                     4                        5                               
0  I  55  A  2018-03-10 00:00:00.000  username_in_current_row  2012-01-24 00:00:00.000 

我想在python中写一些东西,其中它只选择具有";我"在索引0处,行计数多少记录具有"0";我"那里并且我想打印(在存在"I"的地方成功插入了"X个记录"(

所以在这种情况下,我会做一些类似的事情:

df = pd.read_csv('file.csv', header=None')
print(df)

这将打印数据帧。

df_row_count = df.shape[0] 

在这里,我想要一行计数有多少记录具有";我"在索引0处???

print("X amount of records inserted successfully.") 

我想我需要一个f字符串来代替X,它只计算表中的总行数;我"?

听起来像是在说要过滤数据帧。如果你想找到一个";我"在索引为零,然后打印长度,你可以这样做:

filtered_df = df[df.loc[0, 0]=="I"]
print(f"{len(filtered_df)} records had an "I" at index 0 for column 0.")

问题是,在.read_csv()行之后,只有第一行的索引为0,所以它最多为1。

你真的想数一下有多少行";我"在第一列?如果是这样的话,它更像这样:

filtered_df = df[df[0]=="I"]
print(f"{len(filtered_df)} records had an "I" in the first column.")

希望能有所帮助。:(

要筛选列0中具有I的行,请使用布尔索引:

out = df[df[0].eq('I')]

计算它们的sum布尔级数计算True:

count = df[0].eq('I').sum()

最新更新