import pandas as pd
import numpy as np
'''2种方式,上面逐步理解'''
def q_01_01():
'''解决列重复问题'''
df1 = pd.DataFrame(np.random.randint(0, 5, (6, 5)), columns=list("abcde"))
df3 = pd.DataFrame(np.random.randint(-10, 0, (3, 5)), columns=list("abcac"))
print(df1, df3)
# df1=df1.reset_index()
# df3=df3.reset_index()
df_list = [df1, df3]
for t in df_list:
print(t.columns)
c_n = []
for n, m in enumerate(t.columns): # 当作列表遍历
if t.columns.duplicated()[n]: # 判断Serise的重复值,前面当作bool列表
print(m + f'_{n}')
print(t.columns.duplicated())
c_n.append(m + f'_{n}')
else:
print(m)
print(t.columns.duplicated())
c_n.append(m)
t.columns = c_n
print(df1, df3)
df_c13 = pd.concat([df1, df3], keys=["df1", "df3"])
print(df_c13)
def q_01_02():
'''解决列重复问题'''
df1 = pd.DataFrame(np.random.randint(0, 5, (6, 5)), columns=list("abcde"))
df3 = pd.DataFrame(np.random.randint(-10, 0, (3, 5)), columns=list("abcab"))
print(df1, df3, sep='\n')
# df1=df1.reset_index()
# df3=df3.reset_index()
df_list = [df1, df3]
for t in df_list:
print(t.columns)
# 具体解释见上
t.columns = [m + f'_{n}' if t.columns.duplicated()[n] else m for n, m in enumerate(t.columns)]
print(df1, df3, sep='\n')
df_c13 = pd.concat([df1, df3], keys=["df1", "df3"])
print(df_c13)
if __name__ == '__main__':
q_01_02()
解决pandas.errors.InvalidIndexError: Reindexing only valid with uniquely valued Index objects报错的问题
最新推荐文章于 2024-06-12 15:27:44 发布