我有兴趣知道如何将pandas数据帧转换为NumPy数组.
数据帧:
import numpy as np
import pandas as pd
index = [1, 2, 3, 4, 5, 6, 7]
a = [np.nan, np.nan, np.nan, 0.1, 0.1, 0.1, 0.1]
b = [0.2, np.nan, 0.2, 0.2, 0.2, np.nan, np.nan]
c = [np.nan, 0.5, 0.5, np.nan, 0.5, 0.5, np.nan]
df = pd.DataFrame({'A': a, 'B': b, 'C': c}, index=index)
df = df.rename_axis('ID')
Run Code Online (Sandbox Code Playgroud)
给
label A B C
ID
1 NaN 0.2 NaN
2 NaN NaN 0.5
3 NaN 0.2 0.5
4 0.1 0.2 NaN …Run Code Online (Sandbox Code Playgroud) 如果我有序列序列(可能是元组列表),我可以使用itertools.chain()来展平它.但有时我觉得我宁愿把它写成一种理解.我只是想不出怎么做.这是一个非常具体的案例:
假设我想在序列中交换每对元素.我在这里使用字符串作为序列:
>>> from itertools import chain
>>> seq = '012345'
>>> swapped_pairs = zip(seq[1::2], seq[::2])
>>> swapped_pairs
[('1', '0'), ('3', '2'), ('5', '4')]
>>> "".join(chain(*swapped_pairs))
'103254'
Run Code Online (Sandbox Code Playgroud)
我在序列的偶数和奇数切片上使用zip来交换对.但我最终得到了一个现在需要扁平化的元组列表.所以我使用chain().有没有办法可以用理解来表达它?
如果你想发布你自己的解决方案来解决交换对的元素的基本问题,请继续,我会投票给任何教我新东西的东西.但是,即使答案是"不,你做不到",我也只会接受一个针对我的问题的答案.
如何将数据框中的两列转换为插入列表?
例如:我想做类似的事情
df
Open Close
Date
2016-12-23 1 2
2016-12-27 3 4
2016-12-28 5 6
2016-12-29 0 -1
Run Code Online (Sandbox Code Playgroud)
someFunction(df)
>>> [1, 2, 3, 4, 5, 6, 0, -1]
我发现的最接近的是,list(zip(df.Open, df.Close)但它返回列表中的一堆元组,如下所示:[(1, 2), (3, 4), (5, 6), (0, -1)]
想象一下我有熊猫数据框:
列 1 列 2
A D
B E
C F
Run Code Online (Sandbox Code Playgroud)
如何以这种形式获取结果数据框?
柱子
A
D
B
E
C
F
Run Code Online (Sandbox Code Playgroud)