如何使用 pandas 删除 csv 列中单元格中的某个值
How to delete a certain value in a cell in columns of csv using pandas
我需要帮助删除“None”以及具有一种或多种语言的 language
列中的额外逗号
这是现有的 csv:
f = pd.DataFrame({'Movie': ['name1','name2','name3','name4'],
'Year': ['1905', '1905','1906','1907'],
'Id': ['tt0283985', 'tt0283986','tt0284043','tt3402904'],
'language':['Mandarin,None','None,Cantonese','Mandarin,None,Cantonese','None,Cantonese']})
其中 f
现在看起来像:
Movie Year Id language
0 name1 1905 tt0283985 Mandarin,None
1 name2 1905 tt0283986 None,Cantonese
2 name3 1906 tt0284043 Mandarin,None,Cantonese
3 name4 1907 tt3402904 None,Cantonese
结果应该是这样的:
Movie Year Id language
0 name1 1905 tt0283985 Mandarian
1 name2 1905 tt0283986 Cantonese
2 name3 1906 tt0284043 Mandarin,Cantonese
3 name4 1907 tt3402904 Cantonese
也有其他栏目在language栏目只有'None'个值,所以我不能只用excel中的replace功能,还有多出来的","的问题这样做之后。所以我可能需要有关使用 pandas 或其他东西的新方法的帮助。
提前致谢!
您可以删除所有 None 值,如下所示:
df['language'] = df['language'].str.replace('None,', '')
然后在语言列为空的任何地方,您可以使用正则表达式插入一个 'None' 值。
df['language'] = df['language'].replace(r'^\s*$', 'None', regex=True)
您可以使用替换方法删除 'None' 和 ','
for i in range(len(f)):
f.loc[i,"language"].replace('None','')
f.loc[i,"language"].replace(',','')
print(f)
你可以这样实现,
f["language"] = f.apply(
lambda x: ",".join(filter(lambda y: y != "None", x.language.split(","))), axis=1
)
或更好
f["language"] = f.apply(
lambda x: ",".join([y for y in x.language.split(",") if y != "None"]), axis=1
)
我需要帮助删除“None”以及具有一种或多种语言的 language
列中的额外逗号
这是现有的 csv:
f = pd.DataFrame({'Movie': ['name1','name2','name3','name4'],
'Year': ['1905', '1905','1906','1907'],
'Id': ['tt0283985', 'tt0283986','tt0284043','tt3402904'],
'language':['Mandarin,None','None,Cantonese','Mandarin,None,Cantonese','None,Cantonese']})
其中 f
现在看起来像:
Movie Year Id language
0 name1 1905 tt0283985 Mandarin,None
1 name2 1905 tt0283986 None,Cantonese
2 name3 1906 tt0284043 Mandarin,None,Cantonese
3 name4 1907 tt3402904 None,Cantonese
结果应该是这样的:
Movie Year Id language
0 name1 1905 tt0283985 Mandarian
1 name2 1905 tt0283986 Cantonese
2 name3 1906 tt0284043 Mandarin,Cantonese
3 name4 1907 tt3402904 Cantonese
也有其他栏目在language栏目只有'None'个值,所以我不能只用excel中的replace功能,还有多出来的","的问题这样做之后。所以我可能需要有关使用 pandas 或其他东西的新方法的帮助。 提前致谢!
您可以删除所有 None 值,如下所示:
df['language'] = df['language'].str.replace('None,', '')
然后在语言列为空的任何地方,您可以使用正则表达式插入一个 'None' 值。
df['language'] = df['language'].replace(r'^\s*$', 'None', regex=True)
您可以使用替换方法删除 'None' 和 ','
for i in range(len(f)):
f.loc[i,"language"].replace('None','')
f.loc[i,"language"].replace(',','')
print(f)
你可以这样实现,
f["language"] = f.apply(
lambda x: ",".join(filter(lambda y: y != "None", x.language.split(","))), axis=1
)
或更好
f["language"] = f.apply(
lambda x: ",".join([y for y in x.language.split(",") if y != "None"]), axis=1
)