我是Pandas的新手,我一直在努力实现以下目标,但正在努力。希望有人可以提供帮助。
我目前有以下Panda Dataframe
Out[10]:
0.00632 18.00 2.310 0 0.5380 6.5750 65.20 4.0900 1 296.0 15.30 396.90 4.98 24.00
0 0.00632 18.00 2.310 0 0.5380 6.5750 65...
1 0.02731 0.00 7.070 0 0.4690 6.4210 78...
2 0.02729 0.00 7.070 0 0.4690 7.1850 61...
3 0.03237 0.00 2.180 0 0.4580 6.9980 45...
4 0.06905 0.00 2.180 0 0.4580 7.1470 54...
5 0.02985 0.00 2.180 0 0.4580 6.4300 58...
[505行x 1列]
数据以制表符分隔。我想将此DataFrame转换为以下DataFrame格式
CRIM ZN INDUS CHAS NOX RM AGE DIS RAD TAX \
0 0.00632 18.0 2.31 0 0.538 6.575 65.2 4.0900 1 296.0
1 0.02731 0.0 7.07 0 0.469 6.421 78.9 4.9671 2 242.0
2 0.02729 0.0 7.07 0 0.469 7.185 61.1 4.9671 2 242.0
3 0.03237 0.0 2.18 0 0.458 6.998 45.8 6.0622 3 222.0
4 0.06905 0.0 2.18 0 0.458 7.147 54.2 6.0622 3 222.0
[506行x 14列]
实现这一目标的最佳方法是什么?非常感谢
答案 0 :(得分:2)
您似乎没有更改read_csv
中的默认分隔符(var audio = new Audio('sound/y.mp3');
$('#' + ctrId).find('#divMessage').append(
'<div class="msg_wrap">' +
'<div class="avatar1"></div>' +
'<div class="direct-chat-text"><span class="userName">:' +
msg[i].userName + '</span> ' + '<span>' + msg[i].message +
'</span>' + '</div>' + '</div>' +
'<span style="margin-right: 30px;float:right;font-size: 11px;color: #8c8585;">' +
msg[i].chatTime + '</span>'
).append(audio.play());
)。
解决方案适用于标签分隔符:
,
和空格分隔符:
names = ['CRIM','ZN','INDUS','CHAS','NOX','RM','AGE','DIS','RAD','TAX']
df = pd.read_csv('filename.csv', sep='\t', names = names)
names = ['CRIM','ZN','INDUS','CHAS','NOX','RM','AGE','DIS','RAD','TAX']
df = pd.read_csv('filename.csv', sep='\s+', names = names)
df = pd.read_csv('filename.csv', delim_whitespace=True, names = names)
参数定义新列名称,如果names
没有标题。
答案 1 :(得分:1)
除非您正在从文件中读取数据(在这种情况下,pd.read_csv()
将是更好的选择,如对原始帖子的评论中所述),您可以轻松地将字符串拆分为列:
data = data[0].str.split().apply(pd.Series)
现在,使用data.columns=("CRIM","ZN","INDUS",...)
添加列名,您就完成了设置。
答案 2 :(得分:0)
怎么样
df.apply(lambda x: pd.Series(x.split('\t')))
或类似的东西?