Pandas 从值数组创建新的数据帧

Pandas 从值数组创建新的数据帧,pandas,Pandas,我和熊猫一起学习,不知怎的,我解析了这样一个复杂的数据。但是,我们如何通过忽略第一个空字符串值并仅使用名为name&value的两个新pandas列中的其他两个值,从键needed的数组值创建新的pandas数据帧呢 ExpectedOutput(带编号索引的两列) 假设您的系列具有常规模式,即所有行都具有相同的dict键,并且您正在接触的嵌套级别: ds1=ds.str[“需要”].str[1:] ds2=pd.DataFrame(ds1.to_list(),列=[“名称”,“值”]) ds3

我和熊猫一起学习,不知怎的,我解析了这样一个复杂的数据。但是,我们如何通过忽略第一个空字符串值并仅使用名为
name
&
value
的两个新pandas列中的其他两个值,从键
needed
的数组值创建新的pandas数据帧呢

ExpectedOutput(带编号索引的两列)


假设您的
系列
具有常规模式,即所有行都具有相同的dict键,并且您正在接触的嵌套级别:

ds1=ds.str[“需要”].str[1:]
ds2=pd.DataFrame(ds1.to_list(),列=[“名称”,“值”])
ds3=pd.系列(ds2.到dict(“记录”))
对于
pd.Series
格式的输入:

将熊猫作为pd导入
ds=pd.Series([{'not_needed':'not_needed','needed':[''PPP',8.414448]},
{'not_needed':'not_needed','needed':['FFF',7.414448]}])
现在解释一下步骤:

ds1
-在
pandas
行中与
list
dict
交互的方法是调用
.str[key]
,其中
key
可以是
dict
键或
list
参考

ds2
-是一种使用预定义名称将
ds1
拆分为列的方法


ds3
-
to_dict(“record”)
将数据帧转换为列表,其中每一行由格式为
{column1_name:column1_value_rowN,column2_name:column2_value_rowN,}
的单个条目表示,即假设您的
系列
具有常规模式,即所有行都具有相同的dict键,以及您接触的嵌套级别:

ds1=ds.str[“需要”].str[1:]
ds2=pd.DataFrame(ds1.to_list(),列=[“名称”,“值”])
ds3=pd.系列(ds2.到dict(“记录”))
对于
pd.Series
格式的输入:

将熊猫作为pd导入
ds=pd.Series([{'not_needed':'not_needed','needed':[''PPP',8.414448]},
{'not_needed':'not_needed','needed':['FFF',7.414448]}])
现在解释一下步骤:

ds1
-在
pandas
行中与
list
dict
交互的方法是调用
.str[key]
,其中
key
可以是
dict
键或
list
参考

ds2
-是一种使用预定义名称将
ds1
拆分为列的方法


ds3
-
to_dict(“record”)
将数据帧转换为列表,其中每一行由格式为
{column1\u name:column1\u value\u rowN,column2\u name:column2\u value\u rowN,}的单个条目表示。

您能为您的帖子添加预期的输出吗?这样更容易理解应该做什么。@Arkadiusz刚刚更新。很抱歉造成混淆。您编写了希望在两个新列中看到两个值,但从输入和输出来看,似乎您有一个数据帧,其中一列中有两个长字符串,您希望将它们转换为另一列中的两个字符串,但是模式不同。@Arkadiusz我只需要键
needed
中的值。它是一个数组,希望从中创建一个新的数据帧,数组中的每个项都作为一个新列。由于数组中的第一项是一个空字符串,我想忽略它&只需使用最后2个值就可以了。您是否可以在帖子中添加预期的输出?这样更容易理解应该做什么。@Arkadiusz刚刚更新。很抱歉造成混淆。您编写了希望在两个新列中看到两个值,但从输入和输出来看,似乎您有一个数据帧,其中一列中有两个长字符串,您希望将它们转换为另一列中的两个字符串,但是模式不同。@Arkadiusz我只需要键
needed
中的值。它是一个数组,希望从中创建一个新的数据帧,数组中的每个项都作为一个新列。由于数组中的第一项是一个空字符串,我想忽略它&只需使用最后2个值即可。感谢您花时间解释这一点。有一个疑问,在创建数据帧的过程中是否可以忽略第一个空字符串?不用担心,这正是
.str[1://code>所做的是的。我刚想出来。谢谢,这很有效。感谢您花时间解释这一点。有一个疑问,在创建数据帧的过程中是否可以忽略第一个空字符串?不用担心,这正是
.str[1://code>所做的是的。我刚想出来。非常感谢。
0    {'not_needed': 'not_needed', 'needed': ['', 'PPP', 8.414448]}
1    {'not_needed': 'not_needed', 'needed': ['', 'FFF', 7.414448]}
0    {'name': 'PPP', 'value': 8.414448}
1    {'name': 'FFF', 'value': 7.414448}