Python 如何在向dataframe分配列时删除双引号
我有以下清单Python 如何在向dataframe分配列时删除双引号,python,pandas,dataframe,Python,Pandas,Dataframe,我有以下清单 ColumnName = 'Emp_id','Emp_Name','EmpAGe' 当我试图阅读上面的列并在dataframe内部赋值时,我得到了额外的双引号 df = pd.dataframe(data,columns=[ColumnName]) columns=[ColumnName] i am getting columns = ["'Emp_id','Emp_Name','EmpAGe'"] 如何处理这些额外的双引号并将其删除,同时将标题分配给数据此代码 Colum
ColumnName = 'Emp_id','Emp_Name','EmpAGe'
当我试图阅读上面的列并在dataframe内部赋值时,我得到了额外的双引号
df = pd.dataframe(data,columns=[ColumnName])
columns=[ColumnName]
i am getting columns = ["'Emp_id','Emp_Name','EmpAGe'"]
如何处理这些额外的双引号并将其删除,同时将标题分配给数据此代码
ColumnName = 'Emp_id','Emp_Name','EmpAGe'
是元组而不是列表。
如果您想要三列,每个列上面的元组上都有您需要的值
df = pd.dataframe(data,columns=list(ColumnName))
只是为了加深理解,您可以使用
col.replace
获得所需的
让我们举个例子
>>> df
col1" col2"
0 1 1
1 2 2
结果:
>>> 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
问题在于如何定义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
我写的带有结果的代码的打印屏幕,没有重复引用
您的输入不太正确
ColumnName
已经类似于列表,应该直接传递,而不是包装在另一个列表中。在后一种情况下,它将被解释为一列
df = pd.DataFrame(data, columns=ColumnName)
我不能复制that@U10-前进。我没有得到我只是放置了一个示例数据集,看看这是否有帮助…@非常感谢您的回复,但是列得到了像['E'、'm'、'p']这样的分布…。我使用的代码与上面相同,但当我试图转换columns=list(ColumnName)或columns=eval(ColumnName)时,我有时会遇到“TypeError:Index(…)必须使用某种类型的集合调用“可能是您正在使用的
数据变量。你能打印并显示它的格式和值吗?@J.K..非常感谢你的回复。我试过了,但是我得到了----TypeError:Index(…)必须用某种集合调用,@Arya,我编辑了我的代码并添加了第一行以包含pandas。因此,如果您在Jupyter中复制/粘贴我的代码,它应该可以正常工作。如果您仍然面临错误,请向我发送确切的错误以及您正在使用的工具。@Arya,我编辑了我的代码并添加了一个带有结果的代码打印屏幕。我没有双重报价。如果你复制了代码,仍然看到一个双引号,它可能与你正在使用的工具有关,或者其他东西…@我尝试过,但仍然在前导和尾随['Emp_id'、'Emp_Name'、'EmpAGe'中添加了双引号]“@Arya,如果你能把真正的数据帧示例与你得到的输出和错误放在一起,那么答案会更好。但是,如果您仍然得到引用,那么您可以尝试我引用的答案,只是为了再次检查。@Arya请提供给其他人进行测试。
df = pd.DataFrame(data, columns=ColumnName)