gpt4 book ai didi

python - 如何将第一列定义为 pd.read_csv 中的名称

转载 作者:行者123 更新时间:2023-12-04 01:41:48 24 4
gpt4 key购买 nike

我无法读取/插入 csv 文件的第一列,我已经在 csv 文件中设置了名称,但是,如果我键入 name=['...','...' 等], python 将再次设置它们,我最终会得到 2 次名称,我想将 csv 中的数据实现为 pd.read_csv 的名称。

    import pandas as pd
import tkFileDialog
import numpy as np
import warnings
warnings.filterwarnings('ignore')

rating=tkFileDialog.askopenfilename()
df = pd.read_csv(rating, sep='\t')
print df.head()


movies=tkFileDialog.askopenfilename()
movie_titles=pd.read_csv(movies)
print movie_titles.head

df=pd.merge(df,movies,on='movieId')
print df.head()

错误是:

Traceback (most recent call last):
File "C:/Users/Umer Selmani/Desktop/MP2/test panda.py", line 16, in <module>
df=pd.merge(df,movies,on='movieId')
File "C:\Users\Umer Selmani\Desktop\MP2\venv\lib\site-packages\pandas\core\reshape\merge.py", line 47, in merge
validate=validate)
File "C:\Users\Umer Selmani\Desktop\MP2\venv\lib\site-packages\pandas\core\reshape\merge.py", line 480, in __init__
right = validate_operand(right)
File "C:\Users\Umer Selmani\Desktop\MP2\venv\lib\site-packages\pandas\core\reshape\merge.py", line 1752, in validate_operand
'a {obj} was passed'.format(obj=type(obj)))
TypeError: Can only merge Series or DataFrame objects, a <type 'unicode'> was passed

最佳答案

我不确定我是否明白你想做什么,但据我所知,那里可能存在三个问题:

  1. df 错误地尝试合并自身;
  2. merge 生成重复的列(和值);
  3. merge 尝试使用 unicode

第一个问题是错误。您的变量 df 正在尝试将自身合并到另一个变量 (movie_titles),但语法不正确。

试试这个,而不是:

df = df.merge(movie_titles, on='movieId')

第二个问题不是问题:实际上它是默认的。当您合并两个具有相同列标题的数据集时,您会得到 header_xheader_y

例如:

    header1_x    header2_x    header1_y    header2_y
0 a f a f
1 b g b g
2 c h c h
3 d i d i

解决它的一种方法——一种不会让你花太多心思的方法——是删除你不想要的列:

df = df[[header1_x, header2_x]]

第三个问题与unicode 对象有关。这意味着 header movieId 可能未正确编码。

如果在您处理前面的问题后它仍然存在,请尝试 unicodedata(请参阅 doc):

import unicodedata
unicodedata.normalize("NFKD", df).encode("ascii',"ignore')

关于python - 如何将第一列定义为 pd.read_csv 中的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57135975/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com