从一个列表的列表中提取元素 - Python Pandas

3
我有一个只有一列的Pandas数据框:
          column_name
0   cc_call_center_sk
1   cc_call_center_id
2   cc_rec_start_date
3     cc_rec_end_date

我想要做的是从pandas列中提取每个元素并将其放入一个字符串中,格式如下:
my_string = ['cc_call_center_sk', 'cc_call_center_id', 'cc_rec_start_date', 
'cc_rec_end_date']

我尝试使用以下代码来实现这个功能:

my_list = column_names.values.tolist()

然而,输出结果是一个列表,不符合要求:
[['cc_call_center_sk'], ['cc_call_center_id'], ['cc_rec_start_date'], ['cc_rec_end_date']]

正确的语法应该是 df['column_name'].tolist() - Anton vBR
嗯...你提到想把它放在一个字符串中。在这种情况下:', '.join(df['column_name'])(其中 是我们的分隔符)。 - Anton vBR
3个回答

5
df.names.tolist() 生成预期结果:
>>> df.name.tolist()
['cc_call_center_sk', 'cc_call_center_id', 'cc_rec_start_date', 'cc_rec_end_date']

例如:

>>> df=pd.DataFrame([['cc_call_center_sk'], ['cc_call_center_id'], ['cc_rec_start_date'], ['cc_rec_end_date']], columns=['names'])
>>> df
               names
0  cc_call_center_sk
1  cc_call_center_id
2  cc_rec_start_date
3    cc_rec_end_date
>>> df = pd.DataFrame([['cc_call_center_sk'], ['cc_call_center_id'], ['cc_rec_start_date'], ['cc_rec_end_date']], columns=['names'])
>>> df.names.tolist()
['cc_call_center_sk', 'cc_call_center_id', 'cc_rec_start_date', 'cc_rec_end_date']

您确定在获取df.names之前没有对数值进行“分组”或进行其他“预处理”吗?



5
您可以在“column_name”系列上使用“tolist”方法。请注意,“my_string”是一个字符串列表,而不是字符串。您分配的名称不太合适。
>>> import pandas as pd
>>> df = pd.DataFrame(['cc_call_center_sk', 'cc_call_center_id', 'cc_rec_start_date', 'cc_rec_end_date'],
...                   columns=['column_name'])
>>> df
         column_name
0  cc_call_center_sk
1  cc_call_center_id
2  cc_rec_start_date
3    cc_rec_end_date
>>>
>>> df['column_name'].tolist()
['cc_call_center_sk', 'cc_call_center_id', 'cc_rec_start_date', 'cc_rec_end_date']

如果您更喜欢使用点号表示法,下面的代码也可以实现同样的功能。
>>> df.column_name.tolist()
['cc_call_center_sk', 'cc_call_center_id', 'cc_rec_start_date', 'cc_rec_end_date']

2
假设你有一个名为df的数据框,它看起来像这样:
df
    column_name
0   cc_call_center_sk
1   cc_call_center_id
2   cc_rec_start_date
3   cc_rec_end_date

然后:

my_string = df.column_name.values.tolist()

或者:

my_string = df['column_name'].values.tolist()

会给你想要的结果。这是当你打印my_string的结果。

['cc_call_center_sk',
'cc_call_center_id',
'cc_rec_start_date',
'cc_rec_end_date']

你想要做的是这样的:
my_strings = df.values.tolist()

这将为您提供一个列表的列表,外部列表中的列表数等于您数据帧中的观测数。每个列表将包含与1个观测相关的所有特征信息。
我希望我已经清楚地向您解释了这一点。 谢谢

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接