Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python/Pandas:如何将2列拆分为单独的记录?_Python_Pandas - Fatal编程技术网

Python/Pandas:如何将2列拆分为单独的记录?

Python/Pandas:如何将2列拆分为单独的记录?,python,pandas,Python,Pandas,我有一个口袋妖怪的数据框(这是它的头部): 我希望能够根据口袋妖怪的类型进行分析。我的问题是有一个类型为1的列和一个类型为2的列。我感兴趣的是,如果是类型_1或类型_2,则按类型irregardless查看总统计数据。我该如何着手解决这个问题?我的猜测是,我必须为每个口袋妖怪创建第二行,将其类型_2作为type,并将原始记录的类型_1更改为type。我怎样才能在熊猫身上做到这一点呢 编辑:我感兴趣的输出示例如下: 草:平均生命:300,平均攻击:50,平均防御:60…. 毒药:平均生命:308

我有一个口袋妖怪的数据框(这是它的头部):

我希望能够根据口袋妖怪的类型进行分析。我的问题是有一个类型为1的列和一个类型为2的列。我感兴趣的是,如果是类型_1或类型_2,则按类型irregardless查看总统计数据。我该如何着手解决这个问题?我的猜测是,我必须为每个口袋妖怪创建第二行,将其类型_2作为type,并将原始记录的类型_1更改为type。我怎样才能在熊猫身上做到这一点呢

编辑:我感兴趣的输出示例如下:
草:平均生命:300,平均攻击:50,平均防御:60….
毒药:平均生命:308,平均攻击:60,平均防御:40..

所以我认为@piRSquared's非常棒。如果您希望输出与您的问题完全相同,请尝试以下操作:

types = set(df["Type_1])
types.add(df["Type_2])
data_columns = ["HP, "Attack", "Defense"]
for type_ in types:
    avgs = df[(df["Type_1"]==type_) | (df["Type_2"]==type_)][data_columns].mean()
    response = """{type}: Average Hp: {hp}, Average Attack: {attack},
               Average Defense: {defense}""".format(type=type_, hp=avg["HP"], 
                                                    attack=avg["Attack], 
                                                    defense=avg["Defense"])

所以我认为@piRSquared's非常棒。如果您希望输出与您的问题完全相同,请尝试以下操作:

types = set(df["Type_1])
types.add(df["Type_2])
data_columns = ["HP, "Attack", "Defense"]
for type_ in types:
    avgs = df[(df["Type_1"]==type_) | (df["Type_2"]==type_)][data_columns].mean()
    response = """{type}: Average Hp: {hp}, Average Attack: {attack},
               Average Defense: {defense}""".format(type=type_, hp=avg["HP"], 
                                                    attack=avg["Attack], 
                                                    defense=avg["Defense"])

考虑数据帧
df

df = pd.DataFrame([
        ['Fire', 'Poison', 300, 30, 10],
        ['Poison', 'Grass', 250, 20, 15]
    ], columns=['Type1', 'Type2', 'HP', 'Attack', 'Defense'])

    Type1   Type2   HP  Attack  Defense
0    Fire  Poison  300      30       10
1  Poison   Grass  250      20       15
使用
pd.melt

stat_cols = ['HP', 'Attack', 'Defense']
type_cols = ['Type1', 'Type2']
melted = pd.melt(df, stat_cols, type_cols, value_name='Type')
melted.groupby('Type')[stat_cols].mean()

           HP  Attack  Defense
Type                          
Fire    300.0    30.0     10.0
Grass   250.0    20.0     15.0
Poison  275.0    25.0     12.5
额外学分
使用
描述


考虑数据帧
df

df = pd.DataFrame([
        ['Fire', 'Poison', 300, 30, 10],
        ['Poison', 'Grass', 250, 20, 15]
    ], columns=['Type1', 'Type2', 'HP', 'Attack', 'Defense'])

    Type1   Type2   HP  Attack  Defense
0    Fire  Poison  300      30       10
1  Poison   Grass  250      20       15
使用
pd.melt

stat_cols = ['HP', 'Attack', 'Defense']
type_cols = ['Type1', 'Type2']
melted = pd.melt(df, stat_cols, type_cols, value_name='Type')
melted.groupby('Type')[stat_cols].mean()

           HP  Attack  Defense
Type                          
Fire    300.0    30.0     10.0
Grass   250.0    20.0     15.0
Poison  275.0    25.0     12.5
额外学分
使用
描述


有很多方法,太多了!如果你能提供一个你期望最终输出的例子,你会得到更好的服务。我编辑了这个问题,这有意义吗?有很多方法,太多了!如果你能提供一个你期望最终输出的例子,你会得到更好的服务。我编辑了这个问题,这有意义吗?有19种不同的类型。有没有一种方法可以每次都自动执行而不是硬编码呢?可能吧。就像@piRSquared所说的,我们需要看一个你期望输出的例子。有19种不同的类型。有没有一种方法可以每次都自动执行而不是硬编码呢?可能吧。就像@piRSquared所说的,我们需要看到一个示例,说明您希望输出看到什么。谢谢!我现在尝试独立地获取数据片段(查看某些统计数据的最高、最低等)。为此,我需要一个所有类型的列表。我使用了如下代码:注意到Melled给了NaN一些值。“这有什么原因吗?我该如何解决它呢?”泰勒·尔伯特:这当然有原因。如果看不到
NaN
数据的确切位置,我不知道这是什么原因。如果你能提供一个简单的例子来说明问题并提出一个新问题,那就最好了。谢谢!我现在尝试独立地获取数据片段(查看某些统计数据的最高、最低等)。为此,我需要一个所有类型的列表。我使用了如下代码:注意到Melled给了NaN一些值。“这有什么原因吗?我该如何解决它呢?”泰勒·尔伯特:这当然有原因。如果看不到
NaN
数据的确切位置,我不知道这是什么原因。最好是提供一个最小的示例来演示问题并提出一个新问题。