python - 从 DataFrame 行元素生成元组

标签 python pandas dataframe tuples

我希望这不是我在以编程方式做一些愚蠢的事情。

我有一个带有数值的单行数据框:

df1                          A            B            C          D

 01-02-2003T00:00:00         5.0         7.0          2.0        4.0   ....

我想根据数据框中的值生成一个元组列表。我执行以下操作:

my_array = numpy.array(df1)

它给我:

           0            1            2          3

 0        5.0          7.0          2.0        4.0   ....

然后我做:

 my_tuple_of_tuples =  tuple((0.5*x, 1.5*x) for x in my_array)

我希望这样:

((2.5,7.5),(3.5,10.5),(1.0,3.0),(2.0,6.0))

但我明白了:

((2.5,3.5,1.0,2.0),(7.5,10.5,3.0,6.0)) 

我做错了什么?

最佳答案

只要索引第一行,然后你的代码就可以工作了:

tup = tuple((0.5 * x, 1.5 * x) for x in df.values.tolist()[0])
print(tup)
# ((2.5, 7.5), (3.5, 10.5), (1.0, 3.0), (2.0, 6.0))

这是可行的,因为

df.values.tolist()[0]
# [5.0, 7.0, 2.0, 4.0]

仅返回第一行中所有元素的列表。现在,您所做的迭代将起作用。


如果您需要它对多行起作用,您可以将其转换为嵌套循环,或使用 chain.from_iterable

from itertools import chain
tup = tuple(
    (0.5 * x, 1.5 * x) for x in chain.from_iterable(df.values.tolist()))
print(tup)
# ((2.5, 7.5), (3.5, 10.5), (1.0, 3.0), (2.0, 6.0))

关于python - 从 DataFrame 行元素生成元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53803079/

相关文章:

r - 搜索和替换功能以重命名列

python - 使用 Pandas 绘制多索引表中的特定列

python - Pandas 基于索引/列组合合并 DataFrame

python - pandas.io sql.execute() 带 IN 运算符的变量 unicode-query-param

python - Django 表单 : setting initial value on DateField

python - 根据条目从 pandas.Dataframe 中删除行

python - 将数据帧拆分为多个数据帧

python - 仅在另一个文件中导入功能

python - 如何将多条记录添加到谷歌应用引擎数据存储区

python - Django 数据库关系 - TypeError : 'ManyToOneRel' object is not iterable