0
我試圖獲取不同日期的推文,並將它們追加到一個數據框中,最後寫入一個csv文件。文本文件追加推文,但df被覆蓋,csv文件也被覆蓋。如何在使用for循環時追加數據框?
這裏是我的代碼:
import datetime
x= datetime.date.today()
y= x.strftime('%Y-%m-%d')
c= datetime.date.today() - datetime.timedelta(days=1)
d= c.strftime('%Y-%m-%d')
e= datetime.date.today() - datetime.timedelta(days=2)
f= e.strftime('%Y-%m-%d')
g= datetime.date.today() - datetime.timedelta(days=3)
h= g.strftime('%Y-%m-%d')
i= datetime.date.today() - datetime.timedelta(days=4)
j= i.strftime('%Y-%m-%d')
k= datetime.date.today() - datetime.timedelta(days=5)
l= k.strftime('%Y-%m-%d')
m= datetime.date.today() - datetime.timedelta(days=6)
n= m.strftime('%Y-%m-%d')
o= datetime.date.today() - datetime.timedelta(days=7)
p= o.strftime('%Y-%m-%d')
a=[p,n,l,j,h,f,d]
b=[n,l,j,h,f,d,y]
for i in range(len(a)):
data = Cursor(api.search, q, since=a[i], until=b[i]).items()
tweet_data = []
# current_working_dir = os.path.dirname(os.path.realpath(__file__))
current_working_dir = "./"
log_tweets = current_working_dir + '_tweets.txt'
with open(log_tweets, 'a') as outfile:
for tweet in data:
tweet_data.append(json.loads(json.dumps(tweet._json)))
outfile.write(json.dumps(tweet._json))
outfile.write("\n")
print "text file written"
# Create the dataframe to be used
tweets = pd.DataFrame()
tweets['Tweet'] = map(lambda tweet: tweet['text'].encode('utf-8'), tweet_data)
tweets['Dates'] = map(lambda tweet: time.strftime('%Y-%m-%d %H:%M:%S', time.strptime(tweet['created_at'],'%a %b %d %H:%M:%S +0000 %Y')), tweet_data)
tweets['User'] = map(lambda tweet: tweet['user']['screen_name'], tweet_data)
tweets.to_csv("string.csv", sep=",", index=False)
print " String CSV written......"
我的CSV文件被覆蓋每個連續的日期。我試圖追加數據幀但失敗了。
它工作的弟弟。謝謝,但由於它不包含任何頭文件,你能告訴我如何添加頭文件而不用明確地創建一個列名列表並使用col_name將它分配給頭文件。 – lightyagami96