Pandas 如何将col分离为熊猫中给定的字符长度?

Pandas 如何将col分离为熊猫中给定的字符长度?,pandas,Pandas,如何按如下方式分离数据帧: yr mon day Tmax Tmin pcp 2013 4 22 5.09-10.92 0.0 2013 4 23 2.77 -9.63 0.5 2013 4 24 0.28 -9.90 9.9 201

如何按如下方式分离数据帧:

   yr   mon  day      Tmax  Tmin   pcp
  2013   4  22        5.09-10.92   0.0                         
  2013   4  23        2.77 -9.63   0.5                         
  2013   4  24        0.28 -9.90   9.9                         
  2013   4  25        0.76 -6.70  12.2                         
  2013   4  26       -0.35 -9.48   0.0                         
  2013   4  27        7.22-10.47   0.0                         
  2013   4  28        4.19-10.78   0.0  
你看:Tmax和Tmin之间原则上没有空格。Tmax和Tmin的最大宽度为6个字符空间。如果少于6个空格,则用空格填充。我想把它读到df
df
并把每一列分开。
根据给定的字符长度将列分开?

似乎您需要和
ints
,如果所有数据都在一列中,则解决方案有效,该列由以下人员选择:

另一种解决方案是使用并指定
colspecs

import pandas as pd
from pandas.compat import StringIO

temp=u"""yr  mon  day       Tmax  Tmin   pcp
  2013   4  22        5.09-10.92   0.0                         
  2013   4  23        2.77 -9.63   0.5                         
  2013   4  24        0.28 -9.90   9.9                         
  2013   4  25        0.76 -6.70  12.2                         
  2013   4  26       -0.35 -9.48   0.0                         
  2013   4  27        7.22-10.47   0.0                         
  2013   4  28        4.19-10.78   0.0  """
#after testing replace 'StringIO(temp)' to 'filename.csv'

names=['year', 'mont','day','Tmax','Tmin','pcp']
colspecs = [(0, 6), (9, 10), (12, 14), (21, 26),(26,32),(34,38)]
df = pd.read_fwf(StringIO(temp),colspecs=colspecs, names=names, header=0)
print (df)
   year  mont  day  Tmax   Tmin   pcp
0  2013     4   22  5.09 -10.92   0.0
1  2013     4   23  2.77  -9.63   0.5
2  2013     4   24  0.28  -9.90   9.9
3  2013     4   25  0.76  -6.70  12.2
4  2013     4   26 -0.35  -9.48   0.0
5  2013     4   27  7.22 -10.47   0.0
6  2013     4   28  4.19 -10.78   0.0
试试这个:

df = pd.read_fwf(filename)

你能详细说明你的问题吗?这个函数正是我想要的。@Cobin,很高兴我能帮助你:)Thx。我认为应该在Pandays中设计
colspecs
,当然。
df = pd.read_fwf(filename)