我需要使用Python将数据输入SQL Server数据库,所以为了做到这一点,我将所有数据框转换为str之前:
df = df.astype(str)
但是如果我的数据框有空值作为None
,None
字也被转换为字符串并作为字符串被摄取到我的数据库以及下面的例子。
<表类> 行类型 tbody><<tr>1 没有 2项目 3 项目 4项目 5没有 表类>
使用str.replace
:
# After df = df.astype(str)
df['Type'] = df['Type'].str.replace('None', '')
输出:
>>> df
Row Type
0 1
1 2 projects
2 3 projects
3 4 projects
4 5
[编辑]
根据您的注释,下面的方法替换整个数据框中只包含None的单元格。
df = df.replace(r'^None$', '', regex=True)
注意:^
匹配行首,$
匹配行尾。
Maybe/Example:
import pandas as pd
df = pd.DataFrame({'col1':[None,None,None], 'col2': ['Nonevent',None,'Nonsuch'], 'col3': [None, 'Nonequivalence', None]})
df = df.astype(str)
print(df, 'n')
# currently looks like..
#
# col1 col2 col3
# 0 None Nonevent None
# 1 None None Nonequivalence
# 2 None Nonsuch None
# create a list of the current columns/remove any that should not be touched
cols = df.columns.to_list()
cols.remove('col3')
# from the filtered columns find the rows with 'None'
filter = df.loc[:,cols] == 'None'
# apply the filter and remove the 'None' values only from the columns required
df[filter] = ''
print(df)
# in this case only col1 and col2 are affected
# col1 col2 col3
# 0 Nonevent None
# 1 Nonequivalence
# 2 Nonsuch None
输出(前后):
col1 col2 col3
0 None Nonevent None
1 None None Nonequivalence
2 None Nonsuch None
col1 col2 col3
0 Nonevent None
1 Nonequivalence
2 Nonsuch None