当我尝试运行此代码时:
import pandas as pd
import glob
files = [pd.read_excel(p, skipfooter=1) for p in glob.glob("path/*.xlsx")]
df = files[0].append([files[i] for i in range(1,len(files))])
df.loc[(df[df.columns[6]] == 2002040041),'New Column'] = df[df.columns[2]]
我收到以下错误:
ValueError跟踪(最近一次通话最近) 在
---> 5 df.loc [(df [df.columns [6]] == 2002040041),“新列”] = df [df.columns [2]]
ValueError:无法从重复的轴重新索引
但是,当我编写一个.csv然后阅读它时,问题就解决了。
import pandas as pd
import glob
files = [pd.read_excel(p, skipfooter=1) for p in glob.glob("path/*.xlsx")]
df = files[0].append([files[i] for i in range(1,len(files))])
df.to_csv("file.csv", encoding='utf-8-sig')
df = pd.read_csv("file.csv")
df.loc[(df[df.columns[6]] == 2002040041),'New Column'] = df[df.columns[2]]
如果我改用df.to_excel
,则错误仍然存在。
为什么会发生此错误?如何在不编写.csv文件的情况下解决该问题?每个文件中的所有列名称都相同,并且彼此不同。
答案 0 :(得分:1)
您需要$RE_saddr = qr/^(.+):(\d+)$/;
sub send_packet($$;$)
{
my ($sock, $packet, $dest) = @_;
my @params = ($packet, 0);
if (defined($dest)) {
if (my ($addr, $port) = $dest =~ $RE_saddr) {
if (my $addr_bin = inet_aton($addr)) {
if (defined($dest = sockaddr_in($port, $addr_bin))) {
push(@params, $dest);
} else {
warn "bad address or socket for $addr:$port";
}
} else {
warn "bad address $addr";
}
} else {
warn "bad destination address $dest";
}
}
return 1
if ($sock->send(@params));
return undef;
}
的默认索引:
<form>
<table width="100%">
<tr>
<td>Je naam:</td>
<td align="right">
<input type="text" id="naam" name="naam" size="25" maxlength="35" placeholder="Elon Musk">
</td>
</tr>
<tr>
<td>Je e-mailadress:</td>
<td align="right">
<input type="text" id="email" name="email" size="25" maxlength="25" placeholder="JosDePutte@gmail.com">
</td>
</tr>
<tr>
<td>Type vraag:</td>
<td align="right">
<select name="Type Vraag">
<option value="Business">Business</option>
<option value="ProductVraag">Vraag over een product</option>
<option value="Andere">Andere</option>
</select>
</td>
</tr>
<tr>
<td>Je vraag:</td>
<td align="right">
<textarea id="Vraag" name="Vraag" maxlength="250"></textarea>
</td>
</tr>
</table>
</form>
或通过DataFrame.append
中的参数reset_index(drop=True)
:
df = df.reset_index(drop=True)
然后将代码简化:
ignore_index=True