在Python中更改CSV中的列
如何在CSV中选择列“id”并向其中添加字符串 列ID是一个类似“5474548384”的数字。 我想选择此列并将其更改为添加以下内容:'https://twitter.com/twitter/statuses/'以创建链接。CSV的截图在这篇文章的底部 关于如何在我的CSV中更改此列,有什么建议吗在Python中更改CSV中的列,python,pandas,dataframe,csv,Python,Pandas,Dataframe,Csv,如何在CSV中选择列“id”并向其中添加字符串 列ID是一个类似“5474548384”的数字。 我想选择此列并将其更改为添加以下内容:'https://twitter.com/twitter/statuses/'以创建链接。CSV的截图在这篇文章的底部 关于如何在我的CSV中更改此列,有什么建议吗 import requests import expansions import os import json import pandas as pd import csv import sys i
import requests
import expansions
import os
import json
import pandas as pd
import csv
import sys
import time
bearer_token = "removed for privacy "
search_url = "https://api.twitter.com/2/tweets/search/all"
query_params = {'query': '("covid") i -is:retweet -is:verified -baby -lotion -shampoo lang:en has:geo place_country:US',
'tweet.fields':'created_at,lang,text,geo,author_id,id,public_metrics,referenced_tweets',
'expansions':'geo.place_id,author_id',
'place.fields':'contained_within,country,country_code,full_name,geo,id,name,place_type',
'user.fields':'description,username,id',
'start_time':'2021-02-27T00:00:01.000Z',
'end_time':'2021-02-27T23:30:00.000Z',
'max_results':'10'}
def create_headers(bearer_token):
headers = {"Authorization": "Bearer {}".format(bearer_token)}
return headers
def connect_to_endpoint(url, headers, params):
response = requests.request("GET", search_url, headers=headers, params=params)
if response.status_code != 200:
raise Exception(response.status_code, response.text)
return response.json()
def main():
headers = create_headers(bearer_token)
json_response = connect_to_endpoint(search_url, headers, query_params)
json_response = expansions.flatten(json_response)
df = pd.json_normalize(json_response['data'])
drop = df['author.description'].str.contains('news')
result = df[-drop]
result.to_csv("mydata.csv", encoding="utf-8-sig")
if __name__ == "__main__":
main()
获取数据帧后,可以添加如下前缀:
prefix = 'https://twitter.com/twitter/statuses/'
df['id'] = prefix + df['id'].astype(str)
太棒了,谢谢!