小编Ala*_*lan的帖子

如何将 Pandas 数据框转换为单个列表

假设我有一个数据框:

    col1    col2    col3
0    1       5       2
1    7       13
2    9       1
3            7
Run Code Online (Sandbox Code Playgroud)

如何转换为单个列表,例如:

[1, 7, 9, 5, 13, 1, 7]
Run Code Online (Sandbox Code Playgroud)

我试过了:

df.values.tolist()
Run Code Online (Sandbox Code Playgroud)

但是,这将返回列表列表而不是单个列表:

[[1.0, 5.0, 2.0], [7.0, 13.0, nan], [9.0, 1.0, nan], [nan, 7.0, nan]]
Run Code Online (Sandbox Code Playgroud)

请注意,数据框将包含未知数量的列。只要列表包含数据框中的所有值,值的顺序并不重要。

我想我可以编写一个函数来解压这些值,但是我想知道是否有一种简单的内置方法可以将数据帧转换为系列/列表?

python pandas

6
推荐指数
1
解决办法
2237
查看次数

使用列表过滤 Pandas 数据框的最快方法

假设我有一个 DataFrame,例如:

   col1  col2
0     1     A
1     2     B
2     6     A
3     5     C
4     9     C
5     3     A
6     5     B
Run Code Online (Sandbox Code Playgroud)

以及多个列表,例如:

list_1 = [1, 2, 4]
list_2 = [3, 8]
list_3 = [5, 6, 7, 9]
Run Code Online (Sandbox Code Playgroud)

我可以col2根据 的值col1是否包含在列表中来更新 的值,例如:

for i in list_1:
    df.loc[df.col1 == i, 'col2'] = 'A'

for i in list_2:
    df.loc[df.col1 == i, 'col2'] = 'B'

for i in list_3:
    df.loc[df.col1 == i, 'col2'] = 'C'
Run Code Online (Sandbox Code Playgroud)

然而,这是非常缓慢的。对于 30,000 …

python pandas

5
推荐指数
1
解决办法
298
查看次数

将字符串拆分为x个单词的列表,重复最后的x-1个单词

我需要将字符串拆分成包含x单词数量的列表,但要重复最后一个x-1单词。

line = "Lorem ipsum dolor sit amet consectetur."
Run Code Online (Sandbox Code Playgroud)

如果为x = 2,则输出应为:

['Lorem ipsum', 'ipsum dolor', 'dolor sit', 'sit amet', 'amet consectetur']
Run Code Online (Sandbox Code Playgroud)

如果为x = 3,则输出应为:

['Lorem ipsum dolor', 'ipsum dolor sit', 'dolor sit amet', 'sit amet consectetur']
Run Code Online (Sandbox Code Playgroud)

根据将字符串拆分为两个单词的列表,重复最后一个单词,以下代码成功将字符串拆分为2个单词对:

words = line.split()
print(list(map(' '.join, zip(words[:-1], words[1:]))))
Run Code Online (Sandbox Code Playgroud)

但是,不是将单词的数量硬编码为2,我想指定单词的数量x,例如:

number_of_words = x
def generate_list(x):
Run Code Online (Sandbox Code Playgroud)

我试过了中的整数print(list(map(' '.join, zip(words[:-1], words[1:])))),但是整数似乎只影响单词的顺序,而不影响单词的数量

我想我可以编写单独的函数来处理2个单词,3个单词,4个单词的场景,但是理想情况下,我希望有一个函数可以处理任意x数量的单词。

python

1
推荐指数
1
解决办法
43
查看次数

标签 统计

python ×3

pandas ×2