Dataframe 将元组值更改为数据帧
我有一个数据框,看起来像这样(图中的虚拟数据): 我想将这些元组成对(?)值转换为如下数据帧:Dataframe 将元组值更改为数据帧,dataframe,tuples,Dataframe,Tuples,我有一个数据框,看起来像这样(图中的虚拟数据): 我想将这些元组成对(?)值转换为如下数据帧: Date Age Sex Height(cm) ... 20150210 23 Female 209 ... 20150421 31 Male 301 ... 在不手动输入每一列名称的情况下,将其转换为所需的数据帧的最简单方法是什么 谢谢。假设您的原始数据是列表元组列表。您可以将元组
Date Age Sex Height(cm) ...
20150210 23 Female 209 ...
20150421 31 Male 301 ...
在不手动输入每一列名称的情况下,将其转换为所需的数据帧的最简单方法是什么
谢谢。假设您的原始数据是列表元组列表。您可以将元组的内部列表转换为字典,然后将其传递到
pd.DataFrame()
以创建数据帧
data=[('Date','2015 02 10'),('Age','23'),('Sex','femal'),('Height(cm)','209'),('Weight(kg)','42.0'),
[(‘日期’、‘2015 04 21’、(‘年龄’、‘31’、‘性别’、‘男性’、(‘身高’、‘301’、‘体重’、‘69.0’)],
[(‘日期’、‘2015 04 21’、(‘年龄’、‘11’、‘性别’、‘男性’、(‘身高’、‘150’、‘体重’、‘69.0’)]
df=pd.DataFrame(映射(dict,数据))
您的数据中似乎有额外的空白,您可以使用
df.columns = df.columns.str.strip()
df = df.applymap(lambda x: x.strip())
您还可以删除创建中的多余空格
df=pd.DataFrame([{k.strip():v.strip()代表k,v代表d.items()}代表d代表map(dict,data)])
如果您的日期
键是可能的重复键,则可以将重复键的值组合到列表中。然后在该列上分解以将列表转换为多行
导入集合
数据=[('Date','2015 02 10'),('Date','2015 02 10'),('Age','23'),('Sex','Femal'),('Height(cm)','209'),('Weight(kg)','42.0'),
[(‘日期’、‘2015 04 21’、(‘年龄’、‘31’、‘性别’、‘男性’、(‘身高’、‘301’、‘体重’、‘69.0’)],
[(‘日期’、‘2015 04 21’、(‘年龄’、‘11’、‘性别’、‘男性’、(‘身高’、‘150’、‘体重’、‘69.0’)]
数据=[]
对于数据中的\u元组列表\u:
c=集合.defaultdict(列表)
对于元组列表中的a,b:
c[a]。追加(b)
数据附加(c.items())
df=pd.数据帧(映射(dict,数据)
df=df.apply(pd.Series.explode)
假设原始数据是列表元组的列表。您可以将元组的内部列表转换为字典,然后将其传递到pd.DataFrame()
以创建数据帧
data=[('Date','2015 02 10'),('Age','23'),('Sex','femal'),('Height(cm)','209'),('Weight(kg)','42.0'),
[(‘日期’、‘2015 04 21’、(‘年龄’、‘31’、‘性别’、‘男性’、(‘身高’、‘301’、‘体重’、‘69.0’)],
[(‘日期’、‘2015 04 21’、(‘年龄’、‘11’、‘性别’、‘男性’、(‘身高’、‘150’、‘体重’、‘69.0’)]
df=pd.DataFrame(映射(dict,数据))
您的数据中似乎有额外的空白,您可以使用
df.columns = df.columns.str.strip()
df = df.applymap(lambda x: x.strip())
您还可以删除创建中的多余空格
df=pd.DataFrame([{k.strip():v.strip()代表k,v代表d.items()}代表d代表map(dict,data)])
如果您的日期
键是可能的重复键,则可以将重复键的值组合到列表中。然后在该列上分解以将列表转换为多行
导入集合
数据=[('Date','2015 02 10'),('Date','2015 02 10'),('Age','23'),('Sex','Femal'),('Height(cm)','209'),('Weight(kg)','42.0'),
[(‘日期’、‘2015 04 21’、(‘年龄’、‘31’、‘性别’、‘男性’、(‘身高’、‘301’、‘体重’、‘69.0’)],
[(‘日期’、‘2015 04 21’、(‘年龄’、‘11’、‘性别’、‘男性’、(‘身高’、‘150’、‘体重’、‘69.0’)]
数据=[]
对于数据中的\u元组列表\u:
c=集合.defaultdict(列表)
对于元组列表中的a,b:
c[a]。追加(b)
数据附加(c.items())
df=pd.数据帧(映射(dict,数据)
df=df.apply(pd.Series.explode)
如何创建此数据帧?@Ynjxsjmh首先我必须执行Regex来提取这些值,然后我使用dataframe.from_记录创建了上述数据帧,如果我正确理解了您的问题,您如何创建此数据帧?@Ynjxsjmh首先我必须执行Regex来提取这些值,然后我使用dataframe.from_记录创建了上述数据帧,如果我理解您的问题correctly@WonChulChung什么问题?谢谢你的帮助,效果非常好,我确实有一个列表元组列表。但我面临另一个问题。我没有告诉您完整的故事,但是除了上面的元组示例之外,我还得到了多个具有相同名称(键)的元组,比如('Result','23'),('Result','42')('Result','43')。您的代码似乎只给我('Result,'43')作为最终输出。我想让所有三个“结果”元组都出现在数据框中。@WonChulChung您能发布一个示例数据吗?列表元组列表包含相同的键?@WonChulChung您有多少个相同的键?只有Result
或更多?@WonChulChung查看我的更新答案。@WonChulChung什么问题?谢谢你的帮助,它工作得非常好,我确实有一个列表元组列表。但我面临另一个问题。我没有告诉您完整的故事,但是除了上面的元组示例之外,我还得到了多个具有相同名称(键)的元组,比如('Result','23'),('Result','42')('Result','43')。您的代码似乎只给我('Result,'43')作为最终输出。我想让所有三个“结果”元组都出现在数据框中。@WonChulChung您能发布一个示例数据吗?列表元组列表包含相同的键?@WonChulChung您有多少个相同的键?只有结果
或更多?@WonChulChung查看我的更新答案。
print(df)
Date Age Sex Height(cm) Weight(kg)
0 2015 02 10 23 Female 209 42.0
0 2015 02 10 23 Female 209 42.0
1 2015 04 21 31 Male 301 69.0
2 2015 04 21 11 Male 150 69.0