如何修复为字符串显示NaN的Pandas dataframe,并在将dataframe写入cs时删除列表括号

2024-05-08 17:11:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我将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”,而不是它们的值(见下文)。我该怎么解决这个问题?在

^{pr2}$

(b)在CSV(见下文)中,如何在标题中添加“Index”并删除“Co-author”中的括号?在

,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']",,

Tags: datadatabasesmithcokevinbeardjameslily
2条回答

啊,好吧,我解决(b)在加载到数据之前。。在

tmp = []
for c in xrange(len(co_authors)):
    tmp.append(','.join(map(str,co_authors[c])))
co_authors = tmp

至于第一个问题:在data中,名称'Title:''Venue:'
所以DataFramedata中找不到{},'Venue'。在

您必须删除:

或者您可以跳过columns=[...],它将使用带有:-'Title:''Venue:'的名称

df = pd.DataFrame(data)

至于第二个问题:我在创建DataFrame之后(或期间)用pandas搜索解决方案。
但我没找到。在

但是如果您假设您可以在创建DataFrame之前修改数据,那么您可以编写更短的版本

^{pr2}$

相关问题 更多 >