我使用pandas库将数据附加到数据框,并在下面的代码中重命名我的列:
chunksize = 20000
j = 0
index_start = 1
for df in pd.read_csv('C:/Users/xxx/Desktop/jjj.tsv', chunksize=chunksize, header = None,sep='\t', iterator=True, encoding='utf-8'):
df=df.rename(columns = {0:'screen',1:'user'})
df.to_sql('data', disk_engine, if_exists='append')
index_start = df.index[-1] + 1
j=j+1
if j >=2:
break
else:
count = j*chunksize
print(count)
print(j)
但是,当我执行一个简单的查询时:
df = pd.read_sql_query('SELECT * FROM data LIMIT 3', disk_engine)
我明白了:
index 0 1
0 0 293 3785616
1 1 3250207 5540538
2 2 1000052 5542982
为什么我的列没有重命名?是否应该df=df.rename(columns = {0:'screen',1:'user'})
重命名列?
答案 0 :(得分:1)
通过指定names
参数:
pd.read_csv('C:/Users/xxx/Desktop/jjj.tsv',
chunksize=chunksize,
header = None,
sep='\t',
iterator=True,
encoding='utf-8',
names=['screen','user'])
PS很可能是你第一次创建了你的SQL表,而没有重命名你的列 - 尝试删除并重新创建它
答案 1 :(得分:0)
如果需要重命名列,最好的策略是使用 inplace 标志,
df.rename(columns = {0:'screen',1:'user'}, inplace=True)