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