目标
我有一个如下所示的pandas数据框,想将其拆分为空白处,将“命令”和浮点值分开。
数据框 -df
例如:
0
...
432 cl_bob_lower_amt "0"
433 cl_bobamt_lat "0"
434 cl_bobamt_vert "0"
435 cl_bobcycle "2"
436 cl_viewmodel_shift_left_amt "0"
437 cl_viewmodel_shift_right_amt "0"
...
我的尝试
我尝试使用here
中描述的解决方案import pandas as pd
file_ = open("E:\\Location\\Tree\\123456\\730\\local\\cfg\\myconfig.cfg", 'r')
content = file_.read()
paths = content.split("\n")
df = pd.DataFrame(paths)
df = pd.DataFrame(df.row.str.split(' ',1).tolist(),columns = ['command','value'])
print df
但是,我似乎收到以下错误:
AttributeError: 'DataFrame' object has no attribute 'row'
不幸的是,我无法确定为什么会发生这种情况。
预期结果:
command value
...
432 cl_bob_lower_amt "0"
433 cl_bobamt_lat "0"
434 cl_bobamt_vert "0"
435 cl_bobcycle "2"
436 cl_viewmodel_shift_left_amt "0"
437 cl_viewmodel_shift_right_amt "0"
...
最终,我希望用户能够搜索命令并更改值。
答案 0 :(得分:1)
我的猜测是您正在尝试为DF调用“ ROW”属性,该属性不存在。如果您尝试执行选择行的操作,建议使用.itterows()调用,以仅循环选择索引处想要的行!这是我认为您要实现的最佳解决方案:)
import pandas as pd
重新创建的虚拟数据
content = ['cl_bob_lower_amt "0"',
'cl_bobamt_lat "0"',
'cl_bobamt_vert "0"',
'cl_bobcycle "2"',
'cl_viewmodel_shift_left_amt "0"',
'cl_viewmodel_shift_right_amt "0"',]
已创建原始数据框
df = pd.DataFrame(content, columns = ['Value'])
使用Value.str上的.split调用创建一个新的数据框(或重新分配给现有DF)
split_df = pd.DataFrame(df.Value.str.split(" ").tolist(), columns=["Command", "Value"])
结果:
Command Value
0 cl_bob_lower_amt "0"
1 cl_bobamt_lat "0"
2 cl_bobamt_vert "0"
3 cl_bobcycle "2"
4 cl_viewmodel_shift_left_amt "0"
5 cl_viewmodel_shift_right_amt "0"
答案 1 :(得分:0)
df['command'], df['value'] = df["0"].str.split().str
df
0 command value
432 cl_bob_lower_amt "0" cl_bob_lower_amt "0"
433 cl_bobamt_lat "0" cl_bobamt_lat "0"
434 cl_bobamt_vert "0" cl_bobamt_vert "0"
435 cl_bobcycle "2" cl_bobcycle "2"
436 cl_viewmodel_shift_left_amt "0" cl_viewmodel_shift_left_amt "0"
437 cl_viewmodel_shift_right_amt "0" cl_viewmodel_shift_right_amt "0"
如果该列是整数0
df['command'], df['value'] = df[0].str.split().str