当前位置: 首页 > 面试题库 >

熊猫基于拆分另一列添加新列

凌宏大
2023-03-14
问题内容

我有一个如下所示的熊猫数据框:

A              B
US,65,AMAZON   2016
US,65,EBAY     2016

我的目标是看起来像这样:

A              B      country    code    com
US.65.AMAZON   2016   US         65      AMAZON
US.65.AMAZON   2016   US         65      EBAY

我知道这个问题在这里和这里之前都曾被问过,但 没有一个 对我有用。我试过了:

df['country','code','com'] = df.Field.str.split('.')

df2 = pd.DataFrame(df.Field.str.split('.').tolist(),columns = ['country','code','com','A','B'])

我想念什么吗?任何帮助深表感谢。


问题答案:

您可以split与参数一起使用,expand=True[]在左侧添加一个:

df[['country','code','com']] = df.A.str.split(',', expand=True)

然后到:replace ,``.

df.A = df.A.str.replace(',','.')

print (df)
              A     B country code     com
0  US.65.AMAZON  2016      US   65  AMAZON
1    US.65.EBAY  2016      US   65    EBAY

DataFrame如果没有NaN值,则使用构造函数的另一种解决方案:

df[['country','code','com']] = pd.DataFrame([ x.split(',') for x in df['A'].tolist() ])
df.A = df.A.str.replace(',','.')
print (df)
              A     B country code     com
0  US.65.AMAZON  2016      US   65  AMAZON
1    US.65.EBAY  2016      US   65    EBAY

您也可以在构造函数中使用列名,但这concat是必需的:

df1=pd.DataFrame([x.split(',') for x in df['A'].tolist()],columns= ['country','code','com'])
df.A = df.A.str.replace(',','.')
df = pd.concat([df, df1], axis=1)
print (df)
              A     B country code     com
0  US.65.AMAZON  2016      US   65  AMAZON
1    US.65.EBAY  2016      US   65    EBAY


 类似资料:
  • 基于dataframe列val_1值,查看其他列col_0-10标签前缀,然后创建另一列Mycl。 数据帧看起来像: 应用逻辑后所需的数据帧: 我是trid,但这不起作用:df['mycol']=df['col'df['val_1']。aType(str)] DDL生成DataFrame: 谢谢!

  • 我的主要问题是列表的长度不一样。但是所有列表只包含最多相同的3个值:'a'、'b'和'c'。它们总是以相同的顺序出现('a'第一,'b'第二,'c'第三)。 下面的代码用来工作并返回我想要的东西(df2)。 我上周刚刚运行了这个代码,它运行得很好。但是现在我的代码坏了,我从第[4]行得到了这个错误: 数据以这种格式从数据库导入。对这个问题有什么帮助或想法吗?有办法转换Unicode吗?

  • 我有两个数据帧DF1和DF2 DF1: DF2: 我想在DF1中创建一列“image1”,并根据以下条件赋值。 检查值是否在和DF2['documentType']=='Image'中可用 因此,输出应该如下所示: 不知道如何解决这个问题,但一些想法: -加入/合并是我的第一个想法,但是如何处理这些条件呢? -可能使用检查条件的功能映射/应用

  • 我的问题是如何将一列拆分为多个列。我不知道为什么 不起作用。 例如,我想将“df_test”更改为“df_test2”。我看到了很多使用熊猫模块的例子。还有别的办法吗?提前感谢您。 df_test2

  • 我有两排像这样的, 我希望将它们合并为一个单独的: 不知道如何在熊猫身上做到这一点。任何提示都将受到高度赞赏!提前谢谢

  • 我有一个包含这类信息的数据帧: 我想添加第三列,如果描述上有,则该列将接收值1,以获得如下内容:

  • 我有这个原始数据帧: > 可能有多行具有相同的日期时间,如示例所示。 列< code>column中可能不止有两个不同的值,这是一个简化的示例。 所有值都是整数。 我想创建这个新的数据框: 需要采取的行动: > 对于列<code>列<code>中的每个唯一值,创建一个新列,该值作为列的名称。 对于每个唯一的日期时间,创建一个新行。 根据原始列填充值,如果没有值,则使用 NaN。 创建原始数据帧的代

  • 我想给我的 以下是我的代码: 当我运行这个,我得到以下错误: 我怎样才能解决这个问题?