一、merge函数用途
pandas中的merge()函数类似于SQL中join的用法,可以将不同数据集依照某些字段(属性)进行合并操作,得到一个新的数据集。
二、merge()函数的具体参数
用法:
DataFrame1.merge(DataFrame2,
how
=’inner’,
=None,
left_on
=None,
right_on
=None,
left_index
=False,
right_index
=False,
sort
=False,
suffixes
=(‘_x’, ‘_y’))
参数说明
how
默认为inner,可设为inner/outer/left/right
根据某个字段进行连接,必须存在于两个DateFrame中(若未同时存在,则需要分别使用left_on和right_on来设置)
left_on
左连接,以DataFrame1中用作连接键的列
right_on
右连接,以DataFrame2中用作连接键的列
left_index
将DataFrame1行索引用作连接键
right_index
将DataFrame2行索引用作连接键
sort
根据连接键对合并后的数据进行排列,默认为True
suffixes
对两个数据集中出现的重复列,新数据集中加上后缀_x,_y进行区别
三、merge用法举例
创建两个数据框
利用字典dict创建数据框
dataDf1=pd.DataFrame({‘lkey’:[‘foo’,’bar’,’baz’,’foo’],
‘value’:[1,2,3,4]})
dataDf2=pd.DataFrame({‘rkey’:[‘foo’,’bar’,’qux’,’bar’],
‘value’:[5,6,7,8]})
print(dataDf1)
print(dataDf2)
lkey value
0 foo 1
1 bar 2
2 baz 3
3 foo 4
rkey value
0 foo 5
1 bar 6
2 qux 7
3 bar 8
内连接(Inner)
inner链接
dataLfDf=dataDf1.merge(dataDf2, left_on=’lkey’,right_on=’rkey’)
lkey value_x rkey value_y
0 foo 1 foo 5
1 foo 4 foo 5
2 bar 2 bar 6
3 bar 2 bar 8
右链接(Right)
Right链接
dataDf1.merge(dataDf2, left_on=’lkey’, right_on=’rkey’,how=’right’)
lkey value_x rkey value_y
0 foo 1.0 foo 5
1 foo 4.0 foo 5
2 bar 2.0 bar 6
3 bar 2.0 bar 8
4 NaN NaN qux 7
全链接(Outer)
Outer链接
dataDf1.merge(dataDf2, left_on=’lkey’, right_on=’rkey’, how=’outer’)
lkey value_x rkey value_y
0 foo 1.0 foo 5.0
1 foo 4.0 foo 5.0
2 bar 2.0 bar 6.0
3 bar 2.0 bar 8.0
4 baz 3.0 NaN NaN
5 NaN NaN qux 7.0
Original: https://blog.csdn.net/weixin_32460203/article/details/113500329
Author: 野树长生
Title: python中 s 用法_pandas基本用法Python
相关阅读
Title: python格式化字符串
目录
格式化字符串是什么?
Python字符串的格式化处理主要是用来 将变量(对象)的值填充到字符串中,在字符串中解析Python表达式,对字符串进行格式化显示(左对齐、右对齐、居中对齐,保留数字有效位数)。
1.使用占位符格式化字符串:
使用占位符格式化输出时:在%后面加数字表示给这个字符多少个位置,不足电脑会自动使用空格补齐。正数表示左对齐,负数表示右对齐。如:%4d表示左对齐一共占4的位置,%-8d表示右对齐一共占8个位置
占位符:
- %s :字符串的格式化,也是最常用的
- %d :格式化整数,也比较常用
- %c :格式化字符及ASCII码
- %f :格式化浮点数,可以指定小数后面的精度,默认是小数点6位
- %o :格式化无符号八进制数
- %x :格式化无符号十六进制数
- %e : 将整数、浮点数转换成科学计数法
- %%: 当字符串中存在格式化标志时,需要用 %%表示一个百分号;
例子:
占位符%s、%c、%%的使用:
name='小明'
print('%s的使用:')
print('我的名字叫%s!'%(name))
print('我的名字叫%4s!'%(name)) #右对齐
print('我的名字叫%-4s!'%(name)) #左对应
#由于在python中只有字符串这种类型,使用在这里%c只能表示ASCII码,并不能表示字符
character=56
print('c的使用:')
print('%d在ASCII码中表示字母%c'%(character,character))
schedule=99
print('%%的使用:')
print('当前下载进度为%d%%!'%(character))

由于在python中只有字符串这种类型,所以在python中%c只能表示ASCII码,并不能表示字符 !
占位符%d、%o、%x的使用:
number=18
print('%d使用十进制为:%d'%(number,number)) #十进制
print('%d使用八进制为:%o'%(number,number)) #八进制
print('%d使用十六进制为:%x'%(number,number)) #十六进制

如果要在表示八进制或十六进制时显示每个前缀,只需在%后面添加一个#:
[En]
If you want to display each prefix when representing octal or hexadecimal, just add a # after%:
number=200
print('%d使用八进制为:%#o'%(number,number))
print('%d使用十六进制为:%#x'%(number,number))

占位符 %f、%e的使用:
high=174.5
print('我的身高有%f米'%(high)) #默认情况
print('我的身高有%.1f米'%(high)) #小数点保留1位
print('%f使用科学记数法为:%e'%(high,high))

2.使用format方法格式化输出:
1.不设置指定位置:
name = "{}在{}玩了一天的{}"
data = name.format("小明","网吧","LOL")
print(data)

2.设置指定名称:
name = "{name}在{Location}玩了一天的{game}"
data = name.format(Location="网吧",game="LOL",name="小明")
print(data)

3.设置指定位置 :
name = "{2}在{0}玩了一天的{1}"
data = name.format("网吧","LOL","小明",)
print(data)

注意:指定位置是从0开始算起,而不是1!
Original: https://blog.csdn.net/HHYZBC/article/details/123380930
Author: HHYZBC
Title: python格式化字符串
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/297877/
转载文章受原作者版权保护。转载请注明原作者出处!