求助 Pandas DataFrame 只有单行遍历问题。

2016-06-27 09:56:54 +08:00
 kingmo888

有一个 DataFrame 有序数据,

其 index 不是唯一性的(有的一个 key 对应 N 行,有的只有一行)。

根据 index 选出某一条或多条数据,再强制转换为 pd.df 格式并推送数据到另外一个函数,

另外一个函数中,循环遍历每一条数据。

问题来了, 当 df 只有一条数据时,就自动转为 series 格式了,它就不再按照行遍历,而是按照 colums 遍历该行的每一个列了。

而在这种时候,我依然想让他按行遍历一次。 请问咋处理?

谢谢。

6173 次点击
所在节点    Python
5 条回复
billgreen1
2016-06-27 10:06:51 +08:00
不管 index 对应一行还是多行,把它放入一个列表里面
比如 index 是 5 ,对应只有一行
你传入 df.loc[[index], :]这样返回的还是 DataFrame
pming1
2016-06-27 10:08:04 +08:00
同楼上的,再或者,就判断类型,如何是 series ,就直接读取,不遍历
Perrie
2016-06-27 10:09:00 +08:00
df.ix[[index], ]
注意 index 外面的括号
这样取出就还是 df 格式

不知道这是不是你需要的
Perrie
2016-06-27 10:13:55 +08:00
啊, 1L 已经有了~~没错就是这样~
kingmo888
2016-06-27 10:23:51 +08:00
@billgreen1 @pming1 感谢感谢!

我习惯用 ix (貌似是完全不如 loc 快),发现 index 上再加一个[]相当之关键!

果然,好多事情体现在细节上。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/288518

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX