Python 将DataFrame转换为要写入cfg文件的字符串
目标 我有一个Pandas数据框,如下所示,我想加入列,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(),但这似乎没有什么区别 预期产出
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语句。配置文件的末尾似乎有两个空行导致了错误。但是,它仍然仅出现在最后一个命令之后: