Python 将DataFrame转换为要写入cfg文件的字符串

Python 将DataFrame转换为要写入cfg文件的字符串,python,python-2.7,pandas,dataframe,Python,Python 2.7,Pandas,Dataframe,目标 我有一个Pandas数据框,如下所示,我想加入列,command和value,同时将其转换回原始字符串格式以写入.cfg文件 数据帧-df: 加入前: 加入后: 我的尝试: 我使用以下代码成功地组合了两列以获得上面的输出: df = df['command'].astype(str)+' '+df['value'].astype(str) 但是,这仍然无法帮助将数据帧转换为原始字符串,以便将其写入.cfg文件 我还尝试使用df.to_string(),但这似乎没有什么区别 预期产出

目标

我有一个Pandas数据框,如下所示,我想加入列,
command
value
,同时将其转换回原始字符串格式以写入.cfg文件


数据帧-
df

加入前:

加入后:


我的尝试

我使用以下代码成功地组合了两列以获得上面的输出:

df = df['command'].astype(str)+' '+df['value'].astype(str)
但是,这仍然无法帮助将数据帧转换为原始字符串,以便将其写入.cfg文件

我还尝试使用
df.to_string()
,但这似乎没有什么区别


预期产出

我希望在要写入.cfg文件的变量下获得这样分配的原始字符串输出:

bind "0" "slot10"
bind "1" "slot1"
bind "2" "slot2"
bind "3" "slot3"
bind "4" "slot4"
bind "5" "slot5"
bind "6" "slot6"
bind "7" "slot7"
bind "8" "slot8"
bind "9" "slot9"
bind "a" "+moveleft"
bind "b" "buymenu"
bind "d" "+moveright"
bind "e" "+use"
bind "f" "+lookatweapon"
...
etc.
你打电话之后

df = df['command'].astype(str)+' '+df['value'].astype(str)
实际上,您只剩下一个
系列
对象,因此可以调用
df.tolist()
,然后用换行符连接列表中的元素。像这样的

s = df['command'].astype(str)+' '+df['value'].astype(str)
cfg_output = '\n'.join(s.tolist()) # joins each command with a newline
由于您在原始配置文件(这一行)中的读取方式,最后一行追加了一个None值

df = pd.DataFrame(df[0].str.split(' ',1).tolist(),columns = ['command','value'])
无法解释没有值的配置设置。考虑原始CONF文件

的最后三行
sensitivity "0.9"
cl_teamid_overhead_always 1
host_writeconfig
sensitivity
cl\u teamid\u overhead\u的设置后面总是有值,但是
host\u writeconfig
没有,因此当pandas试图在空白处拆分时(该行中不存在),第一个值是
host\u writeconfig
,第二个值是None对象。

调用后

df = df['command'].astype(str)+' '+df['value'].astype(str)
实际上,您只剩下一个
系列
对象,因此可以调用
df.tolist()
,然后用换行符连接列表中的元素。像这样的

s = df['command'].astype(str)+' '+df['value'].astype(str)
cfg_output = '\n'.join(s.tolist()) # joins each command with a newline
由于您在原始配置文件(这一行)中的读取方式,最后一行追加了一个None值

df = pd.DataFrame(df[0].str.split(' ',1).tolist(),columns = ['command','value'])
无法解释没有值的配置设置。考虑原始CONF文件

的最后三行
sensitivity "0.9"
cl_teamid_overhead_always 1
host_writeconfig

sensitivity
cl\u teamid\u overhead\u的设置总是有值跟随它们,但是
host\u writeconfig
没有,所以当pandas尝试在空白处拆分时(该行中不存在),第一个值是
host\u writeconfig
,第二个是None对象。

非常感谢!太好了。输出的底部似乎有3条随机
None
语句。这有什么区别吗?如果没有看到您的输入,我很难判断这不是您的“输入”,这是您正在执行的代码。这里的输入内容是
“E:\\Steam\\userdata\\\..config.cfg”
哦,好的,谢谢。这是你的电话号码。非常感谢。(该程序只允许用户更改配置中的一个值)我已经弄明白了为什么会出现两个None语句。配置文件的末尾似乎有两个空行导致了错误。然而,它仍然只出现在最后一个命令之后:非常感谢!太好了。输出的底部似乎有3条随机
None
语句。这有什么区别吗?如果没有看到您的输入,我很难判断这不是您的“输入”,这是您正在执行的代码。这里的输入内容是
“E:\\Steam\\userdata\\\..config.cfg”
哦,好的,谢谢。这是你的电话号码。非常感谢。(该程序只允许用户更改配置中的一个值)我已经弄明白了为什么会出现两个None语句。配置文件的末尾似乎有两个空行导致了错误。但是,它仍然仅出现在最后一个命令之后: