Some file:
01Jhon Smith 555-1234
03Cow Bos primigenius taurus 00401
01Jannette Jhonson 00100000000
...
field start length
type 1 2 *common to all records, example: 01 = person, 03 = animal
name 3 10
surname 13 10
phone 23 8
credit 31 11
fill of spaces
person1 = {'type': 01, 'name': = 'Jhon', 'surname': = 'Smith', 'phone': '555-1234'}
person2 = {'type': 01, 'name': 'Jannette', 'surname': 'Jhonson', 'credit': 1000000.00}
animal1 = {'type': 03, 'cname': 'cow', 'sciname': 'Bos....', 'legs': 4, 'tails': 1 }
若要从字典生成数据目录,可以传递一个字典列表:
>>> person1 = {'type': 01, 'name': 'Jhon', 'surname': 'Smith', 'phone': '555-1234'}
>>> person2 = {'type': 01, 'name': 'Jannette', 'surname': 'Jhonson', 'credit': 1000000.00}
>>> animal1 = {'type': 03, 'cname': 'cow', 'sciname': 'Bos....', 'legs': 4, 'tails': 1 }
>>> pd.DataFrame([person1])
name phone surname type
0 Jhon 555-1234 Smith 1
>>> pd.DataFrame([person1, person2])
credit name phone surname type
0 NaN Jhon 555-1234 Smith 1
1 1000000 Jannette NaN Jhonson 1
>>> pd.DataFrame.from_dict([person1, person2])
credit name phone surname type
0 NaN Jhon 555-1234 Smith 1
1 1000000 Jannette NaN Jhonson 1
对于两个格式不同的文件混合的更基本的问题,假设文件不太大,我们无法读取它们并将它们存储在内存中,我将使用stringio
创建一个有点像文件的对象,但它只有我们想要的行,然后使用read_fwf
(固定宽度文件)。例如:
from StringIO import StringIO
def get_filelike_object(filename, line_prefix):
s = StringIO()
with open(filename, "r") as fp:
for line in fp:
if line.startswith(line_prefix):
s.write(line)
s.seek(0)
return s
后来呢
>>> type01 = get_filelike_object("animal.dat", "01")
>>> df = pd.read_fwf(type01, names="type name surname phone credit".split(),
widths=[2, 10, 10, 8, 11], header=None)
>>> df
type name surname phone credit
0 1 Jhon Smith 555-1234 NaN
1 1 Jannette Jhonson NaN 100000000
我想对两列使用不同的条件来聚合行。 当我做,我得到输出1 当我做时,我得到输出2 是否有一种方法可以进行聚合,将输出1显示到,将输出2显示到?
我想知道是否可以从一个多索引级别中选择多个项目? 假设我有一个大熊猫数据帧,如下所示: 我想使用dataframe的lvl_2选择特定列 尝试类似< code>df.xs(['c ',' e'],level='lvl_2 ',axis=1)的内容会导致错误: 关键错误:“e”
问题内容: 我正在尝试使用Pandas在几个条件下进行布尔索引。我原来的DataFrame称为。如果执行以下操作,将得到预期的结果: 但是,如果我这样做(我认为应该是等效的),则不会返回任何行: 知道导致差异的原因是什么? 问题答案: 使用是因为运算符优先级: 或者,在单独的行上创建条件: 样品 :
我正在尝试制作一个数据帧,以便可以轻松地将其发送到CSV,否则我必须手动执行此过程。。 我希望这是我的最终输出。每个人都有一个月和年的组合,从2014年1月1日开始,一直到2016年1月12日: 到目前为止的代码: 当我尝试循环创建数据帧时,它要么不工作,要么出现索引错误(因为不匹配列表),我不知所措。 我已经做了一点很好的搜索,并找到了以下一些类似的链接,但我不能反向工程的工作,以适应我的情况。
拿着字典: 我如何把这个字典变成一个数据框,其中的值是列?即。我想要一个数据框显示: 这种形式似乎根本得不到! 谢谢 这是一个不同的问题,另一个问题只是问如何将字典的值放入数据帧,我问的是如何获得我概述的特定形式
我有一个数据框,只有一列和1200行。每行中总共有3个可能的值-“无差异”、“异性”或“同性”。列标题是“Friends”,我试图使用 但结果是一个空的数据帧(df2)