我正在尝试使用熊猫在数据框中将对象转换为字符串。 具有以下数据:
particulars
NWCLG 545627 ASDASD KJKJKJ ASDASD
TGS/ASDWWR42045645010009 2897/SDFSDFGHGWEWER
dtype:object
尝试使用 astype()[具有str,| S,| S32,| S80]类型或直接将对象的详细信息列转换为字符串时>使用str函数不会转换为字符串(剩余对象),并且对于 str方法[用''代替'/''表示AttributeError: 'DataFrame' object has no attribute 'str'
使用熊猫0.23.4
答案 0 :(得分:0)
您可以使用:
import React from "react";
import ReactDOM from "react-dom";
import MUIDataTable from "mui-datatables";
import TableRow from "@material-ui/core/TableRow";
import TableCell from "@material-ui/core/TableCell";
class App extends React.Component {
render() {
const columns = ["Name", "Title", "Location", "Age", "Salary"];
const data = [
["Gabby George", "Business Analyst", "Minneapolis", 30, "$100,000"],
["Aiden Lloyd", "Business Consultant", "Dallas", 55, "$200,000"],
["Jaden Collins", "Attorney", "Santa Ana", 27, "$500,000"],
["Franky Rees", "Business Analyst", "St. Petersburg", 22, "$50,000"],
["Aaren Rose", "Business Consultant", "Toledo", 28, "$75,000"],
[
"Blake Duncan",
"Business Management Analyst",
"San Diego",
65,
"$94,000"
],
["Frankie Parry", "Agency Legal Counsel", "Jacksonville", 71, "$210,000"],
["Lane Wilson", "Commercial Specialist", "Omaha", 19, "$65,000"],
["Robin Duncan", "Business Analyst", "Los Angeles", 20, "$77,000"],
["Mel Brooks", "Business Consultant", "Oklahoma City", 37, "$135,000"],
["Harper White", "Attorney", "Pittsburgh", 52, "$420,000"],
["Kris Humphrey", "Agency Legal Counsel", "Laredo", 30, "$150,000"],
["Frankie Long", "Industrial Analyst", "Austin", 31, "$170,000"],
["Brynn Robbins", "Business Analyst", "Norfolk", 22, "$90,000"],
["Justice Mann", "Business Consultant", "Chicago", 24, "$133,000"],
[
"Addison Navarro",
"Business Management Analyst",
"New York",
50,
"$295,000"
],
["Jesse Welch", "Agency Legal Counsel", "Seattle", 28, "$200,000"],
["Eli Mejia", "Commercial Specialist", "Long Beach", 65, "$400,000"],
["Gene Leblanc", "Industrial Analyst", "Hartford", 34, "$110,000"],
["Danny Leon", "Computer Scientist", "Newark", 60, "$220,000"],
["Lane Lee", "Corporate Counselor", "Cincinnati", 52, "$180,000"],
["Jesse Hall", "Business Analyst", "Baltimore", 44, "$99,000"],
["Danni Hudson", "Agency Legal Counsel", "Tampa", 37, "$90,000"],
["Terry Macdonald", "Commercial Specialist", "Miami", 39, "$140,000"],
["Justice Mccarthy", "Attorney", "Tucson", 26, "$330,000"],
["Silver Carey", "Computer Scientist", "Memphis", 47, "$250,000"],
["Franky Miles", "Industrial Analyst", "Buffalo", 49, "$190,000"],
["Glen Nixon", "Corporate Counselor", "Arlington", 44, "$80,000"],
[
"Gabby Strickland",
"Business Process Consultant",
"Scottsdale",
26,
"$45,000"
],
["Mason Ray", "Computer Scientist", "San Francisco", 39, "$142,000"]
];
const options = {
filterType: "dropdown",
responsive: "scroll",
selectableRows : true,
renderExpandableRow: (rowData, rowMeta) => {
console.log(rowData, rowMeta);
return (
<TableRow>
<TableCell colSpan={rowData.length}>
Custom expandable row option. Data: {JSON.stringify(rowData)}
</TableCell>
</TableRow>
);
}
};
return (
<MUIDataTable
title={"ACME Employee list"}
data={data}
columns={columns}
options={options}
/>
);
}
}
ReactDOM.render(<App />, document.getElementById("root"));
或者:
df['particulars'] = df['particulars'].astype('|S')
然后使用下面的df['particulars'] = df['particulars'].astype(str)
属性,即使在您遇到的情况下也可以使用,只是您以错误的方式访问它,您只能将其访问到列(str
es):
Series
那么现在:
df['particulars'] = df['particulars'].str.replace('/',' ')
将是理想的结果。
编辑:
我意识到您可以在下面编写完整的代码,因为print(df)
代表object
:
str
答案 1 :(得分:0)
您可以阅读将dtype
指定为str
的excel:
df = pd.read_excel("Excelfile.xlsx", dtype=str)
然后在particulars
列中使用字符串替换,如下所示:
df['particulars'] = df[df['particulars'].str.replace('/','')]
请注意,df分配也是“ []”括号中的数据框。
在程序中使用以下命令时,它返回一个字符串,您正尝试将其分配给数据框列。因此是错误。
df['particulars'] = df['particulars'].str.replace('/',' ')
答案 2 :(得分:0)
我希望我能看到整个数据框。话虽如此,您是否尝试过使用下面的代码?
df.particulars = df.particulars.apply(lambda x: str(x))