【问题标题】:Dataframe is of type 'nonetype'. How should I alter this to allow merge function to operate?数据框的类型为“无类型”。我应该如何改变它以允许合并功能运行?
【发布时间】:2019-07-26 00:48:53
【问题描述】:

我从多个 csv 文件和数据库中提取了数据。我希望使用合并函数来创建一个数据框,以隔离两个数据框中包含的电话号码(一个来自 csv,另一个来自数据库)。但是,数据库中的数据框显示为“nonetype”类型。这不允许任何操作,例如合并。我怎样才能改变它以允许操作?

数据以元组列表的形式从数据库中传入。然后我将其转换为数据框。但是,如上所述,它显示为“无类型”。我假设目前我对数据框如何处理数据类型感到困惑。

#抓取数据

mycursor = mydb.cursor()

mycursor.execute("SELECT DISTINCT(Cell) FROM crm_data.ap_clients Order By Cell asc;")

apclients = mycursor.fetchall()

#清理电话号码数据

for index, row in data.iterrows():
data['phone_number'][index] = data['phone_number'][index][-10:] 

for index, row in data2.iterrows():
data2['phone_number'][index] = data2['phone_number'][index][-10:] 

for index, row in data3.iterrows():
data3['phone_number'][index] = data3['phone_number'][index][-10:] 

#从csv文件制作数据框

fbl = pd.concat([data,data2,data3], axis=0, sort=False)

#make data frame from apclients(数据库提取)

apc = pd.DataFrame(apclients)

#perfrom 合并查找两个帧中的所有记录

successfulleads= pd.merge(fbl, apc, left_on ='phone_number', right_on='0')

#type(apc) 返回无类型

预期的结果是找到两个数据框中的所有记录以及计数,以便我可以比较这两个集合。非常感谢这个伟大社区的任何帮助:)

【问题讨论】:

    标签: mysql python-3.x pandas dataframe


    【解决方案1】:

    所以看起来我有一个重命名数据框列的函数,如下所示:

    apc = apc.rename(columns={'0': 'phone_number'}, inplace=True)
    for col in apc.columns: 
        print(col) 
    

    上面负责的代码sn-p出来:

    inplace=True
    

    这个 sn-p 指示对象是否在数据框中被修改,或者是否制作副本。所述对象的返回类型是无类型的。

    希望这对最终担任我职位的人有所帮助。再次感谢社区。 :)

    【讨论】:

      猜你喜欢
      • 2016-03-02
      • 1970-01-01
      • 1970-01-01
      • 2022-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-24
      • 2019-06-18
      相关资源
      最近更新 更多