头歌 6. Pandas合并数据集

第1关:Concat与Append操作

import pandas as pd

def task1():
    #********** Begin **********#
    df1 = pd.read_csv("step1/data.csv")
    df2 = pd.read_csv("step1/data1.csv")
    result = pd.concat([df1, df2], axis=1).set_index('Ladder').fillna(0)
    
    #********** End **********#
    return result

第2关:合并与连接

import pandas as pd


def task2(dataset1,dataset2,dataset3):

    # ********** Begin **********#
    df1 = pd.DataFrame(dataset1)
    df2 = pd.DataFrame(dataset2)
    df3 = pd.DataFrame(dataset3)

    df4 = pd.merge(df1, df2, how='outer')
    df4 = pd.merge(df4, df3, how='outer')
    df4 = df4.fillna(0, axis=1)
    df4['user_id'] = df4['user_id'] + df4['id']
    df4['user_id'] =df4['user_id'].astype('int')
    df4.drop(df4.index[3], inplace=True)
    result = df4.drop('id', axis=1)
    result = result.sort_values(by='user_id', ascending=True)

    result.index = [6, 7, 8, 0, 1, 2, 3, 4, 5]
    
    # ********** End **********#
    return result

第3关:案例:美国各州的统计数据

import pandas as pd
import numpy as np

def task3():
    #********** Begin **********#
    #读取三个csv文件
    pop = pd.DataFrame(pd.read_csv("./step3/state-population.csv"))
    ares = pd.DataFrame(pd.read_csv("./step3/state-areas.csv"))
    abbrevs = pd.DataFrame(pd.read_csv("./step3/state-abbrevs.csv"))
    # 合并pop和abbrevs并删除重复列
    df1 = pd.merge(pop, abbrevs, how='outer', left_on='state/region', right_on='abbreviation')
    df1 = df1.drop('abbreviation', axis=1)
    # 填充对应的全称

    df1.loc[df1['state/region'] == 'PR', 'state'] = 'Puerto Rico'
    df1.loc[df1['state/region'] == 'USA', 'state'] = 'United States'

    # 合并面积数据
    df1 = pd.merge(df1, ares, on='state', how='left')

    # 删掉这些缺失值
    df1 = df1.dropna()

    # 取year为2010年的数据,并将索引设为state列
    df1 = df1.loc[df1['year'] == 2010]

    df1.set_index('state')

    # 计算人口密度
    df1['population'] = df1['population'] / df1['area (sq. mi)']

    # 对密度求和

    a = df1.loc[df1['ages'] == 'under18']['population']
    b = df1.loc[df1['ages'] == 'total']['population']
    all = a.values + b.values

    all = pd.DataFrame(all, index=df1.loc[df1['ages'] == 'under18']['state'])

    # 对值进行排序

    all = all.sort_values(0, ascending=False)
    # 输出人口密度前5名和倒数5名
    print("前5名:")
    front = str(all.iloc[:5, 0])[:-24]
    print(front)
    print('dtype: float64')
    print("后5名:")
    back = str(all.iloc[-5:, 0])[:-24]
    print(back)
    print('dtype: float64')
    # ********** End **********#

python-pandas的一些小练习——东北大学大数据班数据挖掘实训Python基础二(2) 实训练习:练习使用pandas 包中的dataframe和方法。 1将数据读取为dataframe类型,命名为df 2查看数据的形状[了解数据有多少行、多少列] 3查看数据的最开始的7条数据和尾部的3条数据 4查看数据的各字段的类型 5查看数据是否有缺失值 6如果有缺失值,进行补0操作 7从df中按字段取出‘ date’’dist’和‘ flight’形成新的df1 8从df中按位置选取行为3和4,列为0,1的数据形成新的df2 9在df中添加一列‘ low_dest’,内容是‘ dest’这列的字符串的小写形式 10从df中选取‘ dist’大于1000并且小于1200的数据作为一个新的df3 11从df中选取‘ time’大于100的数据做为新的df4 12将df3和df4合并为一个dataframe,命名为df5 13取出df3中的‘ time’,‘dist’ 这两列做为df6, 求出df6中每列中最大值与最小值的差值(运用lambda函数的方式进行求解 ) 14将df根据“ dest”分组,统计各目的地,都有多少条数据,命名为“ dest_count”,然后将“ dest”和“ dest_count”组成新的dataframe命名为df7 15根据dep_delay不为0,统计df中有多少次航班起飞延误 16利用plane字段,统计df中不同航班的飞行次数,以plane和plane_cout格式保存为df8 17利用carrier字段,计算df中carrier字段不同属性数据的数据量的比值(如:XE的数据量与MQ的数据量的比值) 18分别将df7和 df8保存到本地文件,文件名分别为df7.csv和df8.csv
### 回答1: concat和append都是字符串操作,用于将两个或多个字符串连接在一起。 concat是JavaScript中的字符串方法,用于将两个或多个字符串连接在一起,并返回一个新的字符串。例如: var str1 = "Hello"; var str2 = "World"; var result = str1.concat(" ", str2); console.log(result); // 输出 "Hello World" append是Python中的字符串方法,用于将一个字符串添加到另一个字符串的末尾,并返回一个新的字符串。例如: str1 = "Hello" str2 = "World" result = str1 + " " + str2 print(result) # 输出 "Hello World" ### 回答2: concat和append操作都是用于合并字符串或者数组的方法,但是它们之间还是有一些不同的。 首先,concat操作是String的方法,而append操作是StringBuilder和StringBuffer的方法。String是不可变对象,因此每次执行concat操作都会创建一个新的String对象,并将原来的String对象和要拼接的字符串拼接起来,而StringBuilder和StringBuffer则是可变对象,每次执行append操作都会在原来的对象上进行拼接,避免了创建新对象的开销,因此在频繁的字符串拼接操作中,使用StringBuilder或者StringBuffer比使用concat方法更加高效。 其次,concat和append操作对于数组的处理也略有不同。在使用concat方法连接数组时,需要将数组转换为String来进行拼接,而在使用append方法时则可以直接将数组作为参数进行拼接。此外,String的concat方法只能连接两个数组,而StringBuilder和StringBuffer的append方法可以连接多个数组。 最后,需要注意的是,使用concat方法时,需要在内部循环中使用加号进行拼接操作,而在使用append方法时,可以一次性将所有数据拼接起来,然后再将拼接结果转换为String。 综上所述,虽然concat和append操作都可以用于字符串或者数组的合并,但是在具体使用中还是需要根据实际需求来选择合适的方法。如果只需要拼接少量字符串或者数组,使用concat方法即可;如果需要频繁进行字符串或者数组的拼接操作,最好使用StringBuilder或者StringBuffer的append方法,以提高效率。 ### 回答3: 第一关的题目要求我们利用concat和append两个操作,将两个字符串拼接起来。这两个操作在一些编程语言中是常见的字符串操作,而且有着不同的实现方式。 首先我们来看concat操作。concat是将两个字符串连接在一起,形成一个新的字符串。这个操作可以通过一些现代编程语言的原生函数实现,比如JavaScript中的concat方法。在JavaScript中,我们可以这样使用concat方法: var str1 = "Hello"; var str2 = "World"; var result = str1.concat(str2); console.log(result); // 输出HelloWorld 这个例子中,我们先定义了两个字符串str1和str2。然后我们调用了str1的concat方法,并传入str2作为参数。这个方法会返回一个新的字符串,将两个字符串连接起来。最后我们将结果输出到控制台。 接着我们来看看append操作。append和concat有些相似,也是将两个字符串连接在一起。不过它的实现方式稍有不同。在一些编程语言中,append需要先定义一个字符串变量,然后不断地向里面添加字符。在Java中,我们可以这样使用append方法: String str1 = "Hello"; String str2 = "World"; StringBuilder sb = new StringBuilder(str1); sb.append(str2); String result = sb.toString(); System.out.println(result); 在这个例子中,我们定义了一个StringBuilder对象sb,传入了str1作为初始值。接着我们调用append方法,向sb中添加了str2。最后通过toString方法,我们将StringBuilder对象转换成了一个字符串,并将结果输出到控制台。 总的来说,concat和append是常见的字符串操作,可以用于将两个或多个字符串连接起来。不同的编程语言可能有着不同的实现方式,需要我们根据具体情况进行选择。在这个关卡中,我们成功地使用了concat和append操作,将两个字符串拼接在一起。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值