1060 5

[程序分享] python程序请教 [推广有奖]

  • 0关注
  • 0粉丝

本科生

24%

还不是VIP/贵宾

-

威望
0
论坛币
30794 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
187 点
帖子
17
精华
0
在线时间
151 小时
注册时间
2020-8-15
最后登录
2024-1-23

100论坛币
微信图片_20200910233136.jpg

最佳答案

fengfeng1104 查看完整内容

import pandas as pd import numpy as np df1 = pd.DataFrame({'A':1,'B':2,'人名':'李山'},index=[0]) df2 = pd.DataFrame({'C':3,'D':4,'人名':'王五'},index=[0]) df3 = pd.DataFrame({'A':5,'C':6,'人名':'王五'},index=[0]) df4 = pd.DataFrame({'B':7,'C':8,'人名':'赵六'},index=[0]) dfs = [df1,df2,df3,df4] # df1.values.flatten().tolist() #读取每个表,并转化为list,然后append # final = list() fi ...
关键词:python
沙发
fengfeng1104 发表于 2020-9-10 23:33:17 |只看作者 |坛友微信交流群
import pandas as pd
import numpy as np

df1 = pd.DataFrame({'A':1,'B':2,'人名':'李山'},index=[0])
df2 = pd.DataFrame({'C':3,'D':4,'人名':'王五'},index=[0])
df3 = pd.DataFrame({'A':5,'C':6,'人名':'王五'},index=[0])
df4 = pd.DataFrame({'B':7,'C':8,'人名':'赵六'},index=[0])

dfs = [df1,df2,df3,df4]

# df1.values.flatten().tolist()
#读取每个表,并转化为list,然后append
# final = list()
final = df1.copy()
for df in dfs[1:]:
    # final.append(df.values.flatten().tolist())
    final = final.append(df,ignore_index=True)

cols = (list(final.columns))
cols.remove('人名')
# pd.DataFrame(final,columns=['from','to','nodes'])
final = final.reindex(['人名']+sorted(cols), axis=1)

使用道具

fengfeng1104 发表于 2020-9-10 23:33
import pandas as pd
import numpy as np
你好,dfs = [df1,df2,df3,df4]这块,是有规律的。所以,能否用“i in range(1,5)”之类的循环语句再做进一步的简化呢?因为df1,df2,df3,df4才仅仅4个而已。如果是df1至df40,甚至更多的话,这样一个个的输入也是很麻烦,效率较低,且很容易出错的。恳请赐教。谢谢。

使用道具

板凳
fengfeng1104 发表于 2020-9-15 14:57:29 |只看作者 |坛友微信交流群
勤劳的飞呀飞 发表于 2020-9-15 13:25
你好,dfs = [df1,df2,df3,df4]这块,是有规律的。所以,能否用“i in range(1,5)”之类的循环语句再做进 ...
我查查看看。这个不太好实现。你可以在读入每个表时同时调用append。读入是可以在文件名那里循环处理的。
文件名用这种占位符方式即可

使用道具

df1 = pd.DataFrame({'W':1,'B':2,'人名':'李山'},index=[0])
df2 = pd.DataFrame({'C':3,'D':4,'人名':'王五'},index=[0])
df3 = pd.DataFrame({'A':5,'C':6,'人名':'王五'},index=[0])
df4 = pd.DataFrame({'B':7,'C':8,'人名':'赵六'},index=[0])

names = locals()
final = pd.DataFrame()

for i in range(1,5):
    t = names["df%s" % i]
    final = final.append(t, ignore_index=True)

sorted_names = sorted(final.columns.drop('人名'))
final = final.reindex(['人名'] + sorted_names, axis=1)


新手,尝试回答一下。

使用道具

缘oO来如此0o 发表于 2021-1-6 16:32
df1 = pd.DataFrame({'W':1,'B':2,'人名':'李山'},index=[0])
df2 = pd.DataFrame({'C':3,'D':4,'人名':'王 ...
谢谢。非常感谢。

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-25 22:14