我有以下pd.DataFrame:
Name 0 1 ...
Col A B A B ...
0 0.409511 -0.537108 -0.355529 0.212134 ...
1 -0.332276 -1.087013 0.083684 0.529002 ...
2 1.138159 -0.327212 0.570834 2.337718 ...
Run Code Online (Sandbox Code Playgroud)
它具有MultiIndex列names=['Name', 'Col']
和层次级别.该Name
标签从0到n,并为每个标签,有两个A
和B
列.
我想要选择此DataFrame的所有A
(或B
)列.
假设我有许多对(int,str)列表,不一定长度相同.这里唯一的限制是列表按整数部分按升序排序:
a = [(1, 'a'), (4, 'a'), (6, 'b'), (7, 'c'), (12, 'a')]
b = [(5, 'd'), (10, 'c'), (11,'e')]
c = [(0, 'b'), (3, 'd')]
Run Code Online (Sandbox Code Playgroud)
我想要做的是按照相应的整数元素出现的顺序发出字符串元素,即在这种情况下:
(0, 'b'), (1, 'a'), (3, 'd'), (4, 'a'), ...
Run Code Online (Sandbox Code Playgroud)
我想知道是否有明显的(漂亮+ Python化)的方式来做到这一点只用迭代器a
,b
和c
?我已经看过,itertools
但在这种情况下无法立即看到如何使用该功能.这些名单a
,b
,c
可能是非常大的,所以我想这样做不读他们入内存,然后排序...
我有一个由时间戳索引的值的系列。这些时间戳的间隔不规则,我想计算一些类似于过去 N 秒的滚动平均值(例如),其中 N 是一个常数。不幸的是,在计算滚动数量之前定期重新采样不是一种选择——滚动数量必须在整个数据集上计算。
大熊猫有什么好办法吗?
我有以下pandas数据框,我想用D列中的值以行的方式填充AC列中的NaN。是否有一种明确的方法来执行此操作,因此我可以定义所有NaN都应以行为单位D列中的值?我找不到在fillna()中显式执行此操作的方法。
请注意,还有其他列EZ,它们具有自己的NaN,并且可能具有其他用于填写NaN的规则,因此请不要更改。
A B C D E
158 158 158 177 ...
158 158 158 177 ...
NaN NaN NaN 177 ...
158 158 158 177 ...
NaN NaN NaN 177 ...
Run Code Online (Sandbox Code Playgroud)
仅对AC列具有此功能:
A B C D E
158 158 158 177 ...
158 158 158 177 ...
177 177 177 177 ...
158 158 158 177 ...
177 177 177 177 ...
Run Code Online (Sandbox Code Playgroud)
谢谢。