我有一个像这样的数据框:
C1 | C2 | C3 | C4 |
---|---|---|---|
1 | 富 | asd | 23 |
富 | 富 | asd | 43 |
3 | 富 | asd | 1 |
4 | 富 | asd | 酒吧 |
我正在尝试过滤(并丢弃)C1 或 C4 列中包含字符串的所有行, 我的最终数据框必须是:
C1 | C2 | C3 | C4 |
---|---|---|---|
1 | 富 | asd | 23 |
3 | 富 | asd | 1 |
我正在尝试使用“isNaN”来执行此操作,但我不确定应该如何使用它。
这是我的代码:
df = pd.read_csv(
path_file,
sep=",",
usecols=columns,
skiprows=0,
skipfooter=0,
engine="python",
encoding="utf-8",
skipinitialspace=True,
on_bad_lines='warn',
names=columns)
df_new = df[df["C1"].notna()]
df_new_2 = df[df["C4"].notna()]
知道如何实现这一目标吗?
你可以尝试这样的事情:
df.loc[df[['C1', 'C4']].apply(pd.to_numeric, errors='coerce').dropna(how='any').index]
输出:
C1 C2 C3 C4
0 1 foo asd 23
2 3 foo asd 1