Pandas:数据框架中更快的字符串操作



我正在编写一个python脚本,该脚本从数据库读取数据并将此数据保存到.csv文件中。为了正确保存它,我需要转义不同的字符,如rnn。下面是我目前的做法:

首先,我使用read_sqlpandas函数从数据库中读取数据。

import pandas as pd
df = pd.read_sql(
sql = 'SELECT * FROM exampleTable',
con = SQLAlchemyConnection
)

我得到的表有不同类型的值。

然后,脚本更新获得的数据帧,将每个字符串值更改为原始字符串。为了实现这一点,我使用了两个嵌套的for循环,以便对每个值进行操作。

def update_df(df)
for rowIndex, row in df.iterrows():
for colIndex, values in row.items():
if isinstance(df[rowIndex, colIndex], str):
df.at[rowIndex, colIndex] = repr(df.at[rowIndex, colIndex])
return df

但是,我需要详细说明的数据量很大(超过100万行,超过100列),需要花费数小时。

我需要的是一种方法来创建csv文件在一个更快的方式。

提前谢谢你。

如果你真的有混合类型,使用applymap应该更快:

df = df.applymap(lambda x: repr(x) if isinstance(x, str) else x)

但是,如果您可以识别字符串列,那么您可以对它们进行切片,(可能与re.escape结合使用?):

import re
str_cols = ['col1', 'col2']
df[str_cols] = df[str_cols].applymap(re.escape)

相关内容

  • 没有找到相关文章

最新更新