[英]How to fix Pandas dataframe which shows NaN for string, and remove list brackets when write dataframe to csv
我將python列表轉換為Pandas數據框,然后將數據框寫入csv。 列表如下:
name = ['james beard', 'james beard']
ids = [304589, 304589]
year = [1999, 1999]
co_authors = [['athman bouguettaya', 'boualem benatallah', 'lily hendra', 'kevin smith', 'mourad quzzani'], ['athman bouguettaya', 'boualem benatallah', 'lily hendra', 'kevin smith', 'mourad quzzani']]
title = ['world wide databaseintegrating the web corba and databases', 'world wide databaseintegrating the web corba and databases']
venue = ['international conference on management of data', 'international conference on management of data']
data = {
'Name': name,
'ID': ids,
'Year': year,
'Co-author': co_authors,
'Title:': title,
'Venue:': venue,
}
df = pd.DataFrame(data, columns=['Name','ID','Year','Co-author','Title', 'Venue'])
df
df.to_csv('test.csv')
我的問題是
(a)“標題”和“地點”列顯示為“ NaN”而不是其值(請參見下文)。 我怎樣才能解決這個問題?
Name ID Year Co-author Title Venue
0 james beard 304589 1999 [athman bouguettaya, boualem benatallah, lily ... NaN NaN
1 james beard 304589 1999 [athman bouguettaya, boualem benatallah, lily ... NaN NaN
(b)在CSV中(見下文),如何在標題中添加“索引”,並在“共同作者”中刪除方括號?
,Name,ID,Year,Co-author,Title,Venue
0,james beard,304589,1999,"['athman bouguettaya', 'boualem benatallah', 'lily hendra', 'kevin smith', 'mourad quzzani']",,
1,james beard,304589,1999,"['athman bouguettaya', 'boualem benatallah', 'lily hendra', 'kevin smith', 'mourad quzzani']",,
關於第一個問題:在data
您有char :
名稱為'Title:'
, 'Venue:'
因此DataFrame
在data
找不到'Title'
, 'Venue'
。
您必須刪除:
或者,您可以跳過columns=[...]
,它將使用以下名稱:
- 'Title:'
, 'Venue:'
df = pd.DataFrame(data)
至於第二個:在創建DataFrame
之后(或期間),我正在使用pandas
搜索解決方案。
我沒找到。
但是,如果您假設可以在創建DataFrame
之前修改數據,則可以將版本寫得更短
co_authors = [','.join(row) for row in co_authors]
嗯,我在加載數據之前使用以下方法解決(b)。
tmp = []
for c in xrange(len(co_authors)):
tmp.append(','.join(map(str,co_authors[c])))
co_authors = tmp
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.