Python 如何将列表加载到DataFrame并迭代ItErrors?
我编写了以下代码:Python 如何将列表加载到DataFrame并迭代ItErrors?,python,Python,我编写了以下代码: df = pandas.DataFrame(temp_data_list) return [X(first, rest.tolist()) for first, rest in df.iterrows()] temp_data_list是一个列表列表,例如[[a',1,2,3],'b',3,2,1]。我想将其转换为DataFrame并迭代iterrows,对于每个元素,首先插入'a'作为,其余的应该是[1,2,3]。出于某种原因,它将'a'插
df = pandas.DataFrame(temp_data_list)
return [X(first, rest.tolist()) for first, rest in df.iterrows()]
temp_data_list
是一个列表列表,例如[[a',1,2,3],'b',3,2,1]
。我想将其转换为DataFrame并迭代iterrows
,对于每个元素,首先插入'a'
作为,其余的应该是[1,2,3]
。出于某种原因,它将'a'
插入到其余部分。如何使其工作?iterrows收益率(索引、值)
将熊猫作为pd导入
df=pd.DataFrame([[a',1,2,3],[b',3,2,1]]
对于idx,df.iterrows()中的行:
首先,*rest=row
打印(第一,其余)
如果,出于某种奇怪的原因,你想把它放在一行中
ret=[(first,rest)对于df.iterrows()中的idx,(first,*rest)
iterrows收益率(索引、值)
将熊猫作为pd导入
df=pd.DataFrame([[a',1,2,3],[b',3,2,1]]
对于idx,df.iterrows()中的行:
首先,*rest=row
打印(第一,其余)
如果,出于某种奇怪的原因,你想把它放在一行中
ret=[(first,rest)对于df.iterrows()中的idx,(first,*rest)
也许我误解了,但听起来这就是你想要的
import pandas as pd
temp_data_list = [['a',1,2,3],['b',3,2,1]]
df = pd.DataFrame(temp_data_list)
df = pd.DataFrame([pd.Series([df.iloc[i,0], list(df.iloc[i, 1:])]) for i in range(len(df))])
也许我误解了,但听起来这就是你想要的
import pandas as pd
temp_data_list = [['a',1,2,3],['b',3,2,1]]
df = pd.DataFrame(temp_data_list)
df = pd.DataFrame([pd.Series([df.iloc[i,0], list(df.iloc[i, 1:])]) for i in range(len(df))])
你和你的尝试非常接近。重要的是,iterrows()
返回两个内容,一个索引值和行数据。因此,您必须接受该索引(idx
如下)。另一件事是,您对问题的其余部分所做的操作并不完全正确。这里有一行类似的代码,可以满足您的需要:
r = [X(first, rest) for idx, (first, *rest) in df.iterrows()]
下面是一个完整的工作示例,包括“X”的定义:
import pandas as pd
class X:
def __init__(self, first, rest):
self.first = first
self.rest = rest
def __repr__(self):
return f"X('{self.first}', {self.rest})"
df = pd.DataFrame([['a',1,2,3],['b',3,2,1]])
r = [X(first, rest) for idx, (first, *rest) in df.iterrows()]
print(r)
结果:
[X('a', [1, 2, 3]), X('b', [3, 2, 1])]
你和你的尝试非常接近。重要的是,iterrows()
返回两个内容,一个索引值和行数据。因此,您必须接受该索引(idx
如下)。另一件事是,您对问题的其余部分所做的操作并不完全正确。这里有一行类似的代码,可以满足您的需要:
r = [X(first, rest) for idx, (first, *rest) in df.iterrows()]
下面是一个完整的工作示例,包括“X”的定义:
import pandas as pd
class X:
def __init__(self, first, rest):
self.first = first
self.rest = rest
def __repr__(self):
return f"X('{self.first}', {self.rest})"
df = pd.DataFrame([['a',1,2,3],['b',3,2,1]])
r = [X(first, rest) for idx, (first, *rest) in df.iterrows()]
print(r)
结果:
[X('a', [1, 2, 3]), X('b', [3, 2, 1])]
是的,我怎么能把它分成一行呢?你没说你想把它分成一行。你可以把我的答案变成一张理解清单。但是把所有的东西都塞进一行是什么困扰呢?你认为它会使你的代码看起来更聪明吗?是的,我怎么能把它分成一行?你并没有说你想把它分成一行。你可以把我的答案变成一张理解清单。但是把所有的东西都塞进一行是什么困扰呢?你认为这会让你的代码看起来更聪明吗?