我有一只DataFrame熊猫:
import pandas as pd
inp = [{'c1':10, 'c2':100}, {'c1':11,'c2':110}, {'c1':12,'c2':120}]
df = pd.DataFrame(inp)
print df
Run Code Online (Sandbox Code Playgroud)
输出:
c1 c2
0 10 100
1 11 110
2 12 120
Run Code Online (Sandbox Code Playgroud)
现在我想迭代这个帧的行.对于每一行,我希望能够通过列的名称访问其元素(单元格中的值).例如:
for row in df.rows:
print row['c1'], row['c2']
Run Code Online (Sandbox Code Playgroud)
是否有可能在熊猫中做到这一点?
我发现了类似的问题.但它没有给我我需要的答案.例如,建议使用:
for date, row in df.T.iteritems():
Run Code Online (Sandbox Code Playgroud)
要么
for row in df.iterrows():
Run Code Online (Sandbox Code Playgroud)
但我不明白row对象是什么以及如何使用它.
我有关于Pandas DataFrame中变量的对数返回的数据。我想将这些收益转换为从100(或任何任意数字)开始的索引时间序列。例如,在创建通胀指数或比较两个不同幅度的序列时,这种操作非常普遍:
因此,例如2000年1月1日的第一个值设置为100,而2000年1月2日的下一个值设置为100 * exp(return_2000_01_02),依此类推。下面的例子:
我知道我可以使用.iteritems()遍历 Pandas DataFrame中的行,如下面的SO问题所示: 遍历迭代
我也知道我可以将DataFrame转换为numpy数组,遍历该数组中的值,然后将numpy数组转换回Pandas DataFrame。该.as_matrix()方法,在此说明: http://pandas.pydata.org/pandas-docs/version/0.13.1/generated/pandas.Series.html
一种更简单的方法是使用Pandas索引中记录的Python和numpy 索引运算符[]来对行进行迭代:http : //pandas.pydata.org/pandas-docs/stable/indexing.html
问题在于,所有这些解决方案(迭代项目除外)都在“ Pandas之外”工作,并且据我所读,效率低下。
有没有一种方法可以使用纯熊猫创建索引时间序列?如果没有,请建议最有效的方法。找到解决方案非常困难,因为索引和索引在Pandas中有特定的含义,但我这次不知道了。