全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 python论坛
1284 5
2020-09-10
悬赏 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 ...
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
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)
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2020-9-15 13:25:02
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,甚至更多的话,这样一个个的输入也是很麻烦,效率较低,且很容易出错的。恳请赐教。谢谢。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

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

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2021-1-6 16:32:19
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)


新手,尝试回答一下。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

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

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群