【发布时间】:2017-06-06 13:13:57
【问题描述】:
我正在尝试从 MS SQL 表中读取数据,其中一列包含大于 1024 个字符的 varchar。 当我将查询读入数据框时,字符串被截断为 1023 个字符。请参阅下面的代码和输出。 有谁知道我如何将大于 1023 个字符的字符串放入数据框中? 我一直在环顾四周,并在 DataFrame 文档中,但我没有找到答案。
在下表的代码中,test 包含一个列“s”,其中一行的字符串长度为 1100。列“len_s”包含字符串“s”的长度(在 SQL 服务器中计算)。
import pypyodbc
from pandas import Series, DataFrame
import pandas as pd
#print("set connection string ...")
connection_string ='Driver={SQL Server Native Client 11.0};Server= ....'
#connect to SQL server
con = pypyodbc.connect(connection_string)
query="select a, s, len(s) as len_s from test"
df=pd.read_sql_query(query, con)
print(df)
print(len(df['s'][1]))
输出是:
a s len_s
0 1 01234567890 11
1 2 0123456789012345678901234567890123456789012345... 1100
1023
所以在数据框中,字符串被截断了...... 有什么建议吗?
【问题讨论】:
-
我认为这只是一种表示(检查
pd.options.display.max_colwidth参数)。print(df.s.str.len())的输出是什么?
标签: python pandas dataframe python-3.5