小编use*_*493的帖子

Pandas df.itertuples打印时重命名数据框列

我知道通常熊猫的itertuples()将返回每个值,包括列名,如下所示:

ab=pd.DataFrame(np.random.random([3,3]),columns=['hi','low','med'])
for i in ab.itertuples():
    print(i)
Run Code Online (Sandbox Code Playgroud)

输出如下:

Pandas(Index=0, hi=0.05421443, low=0.2456833, med=0.491185)
Pandas(Index=1, hi=0.28670429, low=0.5828551, med=0.279305)
Pandas(Index=2, hi=0.53869406, low=0.3427290, med=0.750075)
Run Code Online (Sandbox Code Playgroud)

但是,我不知道为什么它不按我的另一组代码显示如下所示的列:

            us qqq equity  us spy equity
date                                    
2017-06-19            0.0            1.0
2017-06-20            0.0           -1.0
2017-06-21            0.0            0.0
2017-06-22            0.0            0.0
2017-06-23            1.0            0.0
2017-06-26            0.0            0.0
2017-06-27           -1.0            0.0
2017-06-28            1.0            0.0
2017-06-29           -1.0            0.0
2017-06-30            0.0            0.0
Run Code Online (Sandbox Code Playgroud)

上面是一个以时间戳记为索引,float64为列表中的值以及字符串['us qqq equity,'us spy equity']列表的Pandas Dataframe。

当我这样做时:

for row in data.itertuples():
    print (row)
Run Code Online (Sandbox Code Playgroud)

它将列显示为_1和_2,如下所示:

Pandas(Index=Timestamp('2017-06-19 00:00:00'), _1=0.0, _2=1.0)
Pandas(Index=Timestamp('2017-06-20 00:00:00'), _1=0.0, _2=-1.0) …
Run Code Online (Sandbox Code Playgroud)

python iteration dataframe pandas

6
推荐指数
1
解决办法
1543
查看次数

为什么“np.NaN”的数据类型属于numpy.float64?

我创建了一个填充 np.nan 的单列数据框,如下所示:

df=pd.DataFrame([np.nan]*5)

    0
0 NaN
1 NaN
2 NaN
3 NaN
4 NaN
Run Code Online (Sandbox Code Playgroud)

当我尝试查找 的数据类型df.iloc[0,0](即 NaN)时,该值返回numpy.float64

我知道该pd.isnull函数可以为这些 np.NaN 正确返回 true。但是我不明白为什么数据类型是float?

pandas

6
推荐指数
1
解决办法
1万
查看次数

Pandas DataFrame可变性

我对Panda的Dataframe很新,如果有人可以通过以下示例简要讨论DataFrame的可变性,我将非常感激:

d1=pd.date_range('1/1/2016',periods=10,freq='w')
col1=['open','high','low','close']
list1=np.random.rand(10,4)
df1=pd.DataFrame(list1,d1,col1)
Run Code Online (Sandbox Code Playgroud)

据我了解,目前df1是对df对象的引用.

如果我将df1或df1(例如df1.iloc[2:3,1:2])的切片作为新df的输入传递(例如df2=pd.DataFrame(df1)),df2是否会返回一个新的dataframe实例,或者仍然指的是使df1暴露给df2的df1?

关于DataFrame的可变性,我应该注意的任何其他观点都将非常感激.

python dataframe pandas

5
推荐指数
2
解决办法
5287
查看次数

迭代中的返回值类型和pandas中的itertuples的打印列名

我有一个DataFrame如下:

          a         b         c         d
0  0.140603  0.622511  0.936006  0.384274
1  0.246792  0.961605  0.866785  0.544677
2  0.710089  0.057486  0.531215  0.243285
Run Code Online (Sandbox Code Playgroud)

我想用itertuples()迭代df并打印每行的值和列名.目前我知道以下方法:

df=pd.DataFrame(np.random.rand(3,4),columns=['a','b','c','d'])
for item in df.itertuples():
    print(item)
Run Code Online (Sandbox Code Playgroud)

输出是:

Pandas(Index=0, a=0.55464273035498401, b=0.50784779485386233, c=0.55866384351761911, d=0.35969591433338755)
Pandas(Index=1, a=0.60682158587529356, b=0.37571390304543184, 
c=0.13566419305411737, d=0.55807909125502775)
Pandas(Index=2, a=0.73260693374584385, b=0.59246381839030349, c=0.92102184020347211, d=0.029942550647279687)
Run Code Online (Sandbox Code Playgroud)

题:

1)当类型(df)返回Pandas()时,我认为每次迭代的返回数据是一个元组(由函数名建议)?

2)当循环遍历每行的项目时,提取'a','b','c','d'作为列名的最佳方法是什么?

python-3.x pandas

1
推荐指数
1
解决办法
4927
查看次数

标签 统计

pandas ×4

dataframe ×2

python ×2

iteration ×1

python-3.x ×1