我有以下列表
ColumnName = 'Emp_id','Emp_Name','EmpAGe'
当我尝试阅读以上各列并在数据框内分配时,我得到了额外的双引号
df = pd.dataframe(data,columns=[ColumnName])
columns=[ColumnName]
i am getting columns = ["'Emp_id','Emp_Name','EmpAGe'"]
在将标题分配给数据时,如何处理这些多余的双引号并将其删除
答案 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
我用结果编写的代码的打印屏幕,没有双引号
答案 3 :(得分:0)
您的输入不太正确。 ColumnName
已经类似于列表,应该直接传递而不是包装在另一个列表中。在后一种情况下,它将被解释为单个列。
df = pd.DataFrame(data, columns=ColumnName)