我在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()