- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要使用 iterrows 在 pandas Dataframe 中每次选择 N 行。像这样:
def func():
selected = []
for i in range(N):
selected.append(next(dataframe.iterrows()))
yield selected
但是这样做 selected
有 N 个相等的元素。每次我调用 func
我总是得到相同的结果(数据帧的第一个元素)。
如果数据框是:
A B C
0 5 8 2
1 1 2 3
2 4 5 6
3 7 8 9
4 0 1 2
5 3 4 5
6 7 8 6
7 1 2 3
我要获取的是:
N = 3
selected = [ [5,8,2], [1,2,3], [4,5,6] ]
then, calling again the function,
selected = [ [7,8,9], [0,1,2], [3,4,5] ]
then,
selected = [ [7,8,6], [1,2,3], [5,8,2] ]
最佳答案
不需要.iterrows()
,而是使用切片:
def flow_from_df(dataframe: pd.DataFrame, chunk_size: int = 10):
for start_row in range(0, dataframe.shape[0], chunk_size):
end_row = min(start_row + chunk_size, dataframe.shape[0])
yield dataframe.iloc[start_row:end_row, :]
使用方法:
get_chunk = flow_from_df(dataframe)
chunk1 = next(get_chunk)
chunk2 = next(get_chunk)
或者不使用生成器:
def get_chunk(dataframe: pd.DataFrame, chunk_size: int, start_row: int = 0) -> pd.DataFrame:
end_row = min(start_row + chunk_size, dataframe.shape[0])
return dataframe.iloc[start_row:end_row, :]
关于python - 使用 iterrows 选择 pandas 数据框中的下 N 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57198121/
我编写了以下代码来创建数据框,并根据特定条件添加新的行和列。不幸的是,执行起来需要很多时间。 有其他方法可以做到这一点吗?任何意见都将受到高度赞赏。 dfCircuito=None for index
我有一个pandas数据框 from pandas import DataFrame, Series 其中每一行对应一个案例,每一列对应一个月份。我想在每 12 个月期间执行一次滚动求和。看起来很简单
我知道这个话题已经被讨论了一千次了。但我想不出解决办法。 我正在尝试计算列表(df1.list1 的每一行)在列表 (df2.list2) 的列中出现的频率。所有列表仅包含唯一值。 List1 包括大
我有这段代码,其中有大约 60k 行。完成整个过程大约需要 4 个小时。这段代码不可行,时间紧迫,想用apply代替iterrow。 这是代码, all_merged_k = pd.DataFrame
我有这段代码,其中有大约 60k 行。完成整个过程大约需要 4 个小时。这段代码不可行,时间紧迫,想用apply代替iterrow。 这是代码, all_merged_k = pd.DataFrame
我需要从 6 列数据帧的单行中选择 3 列,并将其附加到另一个只有 3 列的数据帧。 import pandas import numpy df1 = pd.DataFrame({'Name':['S
这个问题已经有答案了: Create Pandas DataFrame from txt file with specific pattern (6 个回答) 已关闭 4 年前。 我正在研究代表美国地
以下是示例数据 - 当前解决方案 - for idx, row in data.iterrows(): rp = row['right_player_test'] lp = row['
当我为每个客户创建新的数据框架时,我还想创建一个将所有这些数据框架附加在一起的巨大数据框架。 我创建了一个函数来按照我需要的方式对用户数据进行分组。现在我想迭代另一个包含唯一用户 key 的数据帧,并
d = {'2014-07-10 08:26:29.091199': {'Col':'12976482066142964'}, '2014-07-10 08:26:29.171198': {'Col'
我有一个数据集,其中包含几年来每天的美国国债曲线。行 = 日期,列 = 特定国债期限(3 个月、1 年、10 年等) 我有每天循环并校准利率模型参数的Python代码。我在通过 iterrows 和循
我有一个 pandas Dataframe 的形式: A B K S 2012-03-31 NaN NaN
我讨论了 iterrows 的性能问题 previously , 并得到了良好的普遍 react 。这个问题是一个特定的案例,我希望你能帮助我更好地应用一些东西,因为 iterrows 很慢。 我相信
我在 pandas 中有一个 df,它看起来像: id name values 1 a cat dog 2 b bird fly 我目前在做: for index, row
我相信有人也在 this thread 中报告过, 使用 iterrows() 填充数据框可能导致持久性问题。例如。像这样简单的东西: my_dataframe = pd.DataFrame(np.N
以下代码读取 csv 文件并遍历“子”列的行: df = pd.read_csv("Subs_test.csv", usecols= ['sub']) for index, row in df.ite
我是编程新手,到目前为止,这个问题已经“超出了我的薪水等级”,因此非常感谢您对此提供的任何帮助! 我有一个如下所示的 DataFrame 对象: Dan
我有两个数据集。 df Name Date Quantity ZMTD 2018-06-30 1000 ZMTD 2018-05-31 975 ZMT
我想知道在使用 iterrows 遍历 DataFrame 时如何使用索引而不是名称访问列。 这段代码是我能找到的最多的: for index, row in df.iterrows(): p
我有两个非常相似的 iterrows 循环,一个按我的预期工作,另一个不工作。我的问题是什么使第二个与第一个不同,为什么这会改变我的循环的行为?谢谢 工作循环 我正在使用数据框 drugs_tall
我是一名优秀的程序员,十分优秀!