我想删除以注释字符开头的熊猫数据框中的所有行。例如:
>>> COMMENT_CHAR = '#'
>>> df
first_name last_name
0 #fill in here fill in here
1 tom jones
>>> df.remove(df.columns[0], startswith=COMMENT_CHAR) # in pseudocode
>>> df
first_name last_name
0 tom jones
这实际上如何完成?
答案 0 :(得分:1)
设置
>>> data = [['#fill in here', 'fill in here'], ['tom', 'jones']]
>>> df = pd.DataFrame(data, columns=['first_name', 'last_name'])
>>> df
first_name last_name
0 #fill in here fill in here
1 tom jones
仅假设first_name列中的字符串很重要的解决方案:
>>> commented = df['first_name'].str.startswith('#')
>>> df[~commented].reset_index(drop=True)
first_name last_name
0 tom jones
假定您要删除first_name或last_name列中的字符串以'#'
开头的行的解决方案:
>>> commented = df.apply(lambda col: col.str.startswith('#')).any(axis=1)
>>> df[~commented].reset_index(drop=True)
first_name last_name
0 tom jones
reset_index
的目的是重新标记从零开始的行。
>>> df[~commented]
first_name last_name
1 tom jones
>>>
>>> df[~commented].reset_index()
index first_name last_name
0 1 tom jones
>>>
>>> df[~commented].reset_index(drop=True)
first_name last_name
0 tom jones