将列分配给数据框时如何删除双引号

时间:2019-08-28 03:12:45

标签: python pandas dataframe

我有以下列表

ColumnName = 'Emp_id','Emp_Name','EmpAGe'

当我尝试阅读以上各列并在数据框内分配时,我得到了额外的双引号

df = pd.dataframe(data,columns=[ColumnName])

columns=[ColumnName]

i am getting columns = ["'Emp_id','Emp_Name','EmpAGe'"]

在将标题分配给数据时,如何处理这些多余的双引号并将其删除

4 个答案:

答案 0 :(得分:1)

此代码

ColumnName = 'Emp_id','Emp_Name','EmpAGe'

是一个元组而不是列表。 如果需要三列,每列的值都需要在上面的元组中

df = pd.dataframe(data,columns=list(ColumnName))

答案 1 :(得分:0)

只是为了加深理解,您可以在其中使用import math with open("d.txt") as fp: # Opens the file data ={} #final dictionary line = fp.readline() # Read the file's first line while line: #continues to end of file name, _,cont = line.partition(":")#separates m1 from pt, eta, phi, m =..." #print(cont) numbers, _,ignore = cont.partition("dptinv") #separates dptinv from pt, eta, phi, m =..." #print(numbers) #prints tuple assignment needed keys, _,values = numbers.partition("=") #print(keys) #prints pt, eta, phi, m #print(values) #prints values (all numbers after =) key = [k for k in keys.split(",")] value = [v for v in values.strip().split(" ")] #print(key) #prints pt, eta, phi, m #print(value) thisdict = {} for k, v in zip(key, value): #creating an empty dictionary to fill with keys and values #thisdict[k] = v #print(thisdict) #data[name]=thisdict line = fp.readline()#read next lines thisdict[k] = v data[name]=thisdict print(thisdict) #if " m2" in thisdict: #print("Yes") #print(data) #mul_p = float(data["m1"][" pt"])*float(data["m1"]["eta"]) m = math.cosh(float(data[" m2"]["eta"])) * float(data["m1"][" pt"]) #m1 = float(data["m1"][" pt"]) * float(2) print(m) 获得所需的..

举个例子。

col.replace

结果:

>>> df
   col1"  col2"
0      1      1
1      2      2

OR

>>> df.columns = [col.replace('"', '') for col in df.columns]
  # df.columns = df.columns.str.replace('"', '')  <-- can use this as well
>>> df
   col1  col2
0     1     1
1     2     2

答案 2 :(得分:0)

问题是如何为pandas DataFrame定义列。

下面的示例将构建正确的数据框:

    import pandas as pd
    ColumnName1 = 'Emp_id','Emp_Name','EmpAGe'

    df1 = [['A1','A1','A2'],['1','2','1'],['a0','a1','a3']]

    df = pd.DataFrame(data=df1,columns=ColumnName1 )

    df

结果:

    Emp_id  Emp_Name EmpAGe
0   A1      A1       A2
1   1       2        1
2   a0      a1      a3

我用结果编写的代码的打印屏幕,没有双引号

enter image description here

答案 3 :(得分:0)

您的输入不太正确。 ColumnName已经类似于列表,应该直接传递而不是包装在另一个列表中。在后一种情况下,它将被解释为单个列。

df = pd.DataFrame(data, columns=ColumnName)